Pic Basic pro для начинающих
|
|
contra |
Дата: Вт, 01.06.2010, 17:12 | Сообщение # 256 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
ADMIN, Проверил код в протеусе. что-то не правильно он работает. Скорость счёта не увеличилсь, но индикатор снова начал "мерцать" В чём может быть проблемма?
|
|
|
|
Семеркин |
Дата: Вт, 01.06.2010, 19:32 | Сообщение # 257 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
8
Замечания:
±
На сайте с 31.05.2010
Статус:
Offline
|
спасибо Dmitry! сработка зафиксироваллась, теперь буду учить PIC звонить и СМСки посылать.
|
|
|
|
contra |
Дата: Чт, 03.06.2010, 18:54 | Сообщение # 258 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
всем привет! Вопрос к ADMINу.Скажите, в приведённом вами примере кода (Счётчик импульсов на PIC16F84) переменная isrbit и есть Бит2 регистра INTCON или я все напутал? Спасибо.
|
|
|
|
ADMIN |
Дата: Пт, 04.06.2010, 02:18 | Сообщение # 259 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Это просто бит - флаг, который объявлен в начале программы. isrbit var bit 'Объявим переменную (битовую), клторая будет указывать программе на то, что произошло прерывание Я же объясняю. Не надо в прерывании выполнять действия, включая задержки и вычисления. В прерывании нужно зафиксировать факт прерывания(в данном случае - флагом isrbit)!!! А потом в программе проверять его. и если он установлен, то выполнять действия, которые нужно.
|
|
|
|
contra |
Дата: Сб, 05.06.2010, 07:38 | Сообщение # 260 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
ADMIN, прошу прощение за назойливость но хотелось бы узнать почему: Проверил код в протеусе. что-то не правильно он работает. Скорость счёта не увеличилсь, но индикатор снова начал "мерцать" В чём может быть проблемма? Объясните пожалуйста!
|
|
|
|
ADMIN |
Дата: Сб, 05.06.2010, 16:49 | Сообщение # 261 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Если вы подпждете, я проверю. Сейчас нет возможности проверить. Товарищи!!! У кого есть возможность, проверьте код, пожалуйста. У меня комп голый абсолютно и траффик ограниченный сейчас.
|
|
|
|
ivan_fd |
Дата: Вс, 06.06.2010, 16:50 | Сообщение # 262 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Quote (contra) ADMIN, прошу прощение за назойливость но хотелось бы узнать почему: Проверил код в протеусе. что-то не правильно он работает. Скорость счёта не увеличилсь, но индикатор снова начал "мерцать" В чём может быть проблемма? Объясните пожалуйста! Выложите свой код полностью, посмотрим.
|
|
|
|
contra |
Дата: Вс, 06.06.2010, 20:09 | Сообщение # 263 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
Вот программа в которую ADMIN внёс поправки, но она работает неправильно (мерцают все индикаторы и скорость счёта невысокая)
|
|
|
|
mikhail09p |
Дата: Вс, 13.06.2010, 19:43 | Сообщение # 264 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
holyuser Дата: Воскресенье, 21.02.2010, 13.04.37 | Сообщение # 135 PIC18 Ниже пример вывода на ЖКИ температуры (со знаком) в PBP: Code .... temp var word ; RAW температура от DS18B20 sign var byte ; знак температуры result var byte ; целая часть результата remainder var word ; дробная часть результата .... if temp > 2000 then ; отрицательная температура temp = 65535 - temp + 1 ; вычисление абс. значения sign = 45 ; ASCII код символа "-" result = temp / 16 ; вычисление целой части remainder = (temp // 16) * 625 / 1000 ;вычисление дробной части else ; неотрицательная температура sign = 43 ; ASCII код символа "+" result = temp / 16 ; вычисление целой части remainder = (temp // 16) * 625 / 1000 ;вычисление дробной части endif lcdout $FE,128,sign,#result,".",#remainder," C " ; вывод на ЖКИ .... А как прочитать температуру из датчика ?... Подскажите... Добавлено (13.06.2010, 19.43.46) --------------------------------------------- Как на Pic Basic pro написать программу для чтения 12 разрядов температуры датчика DS18B20? Помогите!
Сообщение отредактировал
mikhail09p - Вс, 13.06.2010, 19:44
|
|
|
|
ivan_fd |
Дата: Вс, 13.06.2010, 21:15 | Сообщение # 265 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Quote (ivan_fd) Вот программа в которую ADMIN внёс поправки, но она работает неправильно (мерцают все индикаторы и скорость счёта невысокая) Извиняюсь раньше не мог. Вы можете выложить код программы (*.pbp), а не doc. И на чем вы пробуете, в железе или протеус? Если протеус, то его модель тоже.
|
|
|
|
Dmitry |
Дата: Вс, 13.06.2010, 23:14 | Сообщение # 266 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Quote (mikhail09p) Как на Pic Basic pro написать программу для чтения 12 разрядов температуры датчика DS18B20? Помогите! Да вот же только что было: http://picbasic.ru/forum/5-416-1 Только на ПРОТОНе Ну вот на PICBasic - коряво, но работает: Code OWOut DQ1, 1, [$CC, $44] ' Start temperature conversion waitloop: OWIn DQ1, 4, [count_remain] ' Check for still busy converting if count_remain = 0 Then waitloop OWOut DQ1, 1, [$CC, $BE] ' Read the temperature OWIn DQ1, 0, [temperature.LOWBYTE, temperature.HIGHBYTE, Skip 2, conf, skip 3] if conf = $ff then showerror
|
|
|
|
Семеркин |
Дата: Пн, 14.06.2010, 20:36 | Сообщение # 267 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
8
Замечания:
±
На сайте с 31.05.2010
Статус:
Offline
|
помогите в очередной раз в борьбе с ПИКом! пытаюсь заставить ПИК 16F628 позвонить, никак вражина не сдается. вот программка: DEFINE LOADER_USED 1 I var byte j var byte q var byte portA = %00000000 CMCON=7 TRISA = %11111111 '1 - âõîä 0 - âûõîä i=0 Define Hser_RCSTA 90h ' Âêëþ÷èòü ïðèåìíèê USART Define Hser_TXSTA 20h ' Âêëþ÷èòü ïåðåäàò÷èê USART Define Hser_bAUD 19200 ' ÑÊÎÐÎÑÒÜ ïåðåäà÷è Define Hser_even 1 ' ðàçðåøèòü ïðîâåðêó ÷åòíîñòè Define Hser_ODD 1 ' ðàçðåøèòü ïðîâåðêó íå÷åòíîñòè MAIN: high 4 PAUSE 1000 low 4 PAUSE 500 if portA.1 = 0 then goto zikl if portA.1 = 1 then goto LED GOTO MAIN led: High 3 Pause 1000 Low 3 Pause 500 hserout ["AT",13] Pause 100 if portA.1 = 0 then goto zikl hserin 500,led,[wait("ok")] goto main zikl: for i=1 to 10 High 3 Pause 200 Low 3 Pause 200 next i GOTO MAIN светодиодики моргают, а вот обмен PIC и Siemensa на могу обнаружить, без пика с помощью программ hiperterminal и simoco управлять телефоном получается, а вот контроллер никак не хочет, даже просто команду АТ не посылает. Описание у Халибейка уж очень поверхностное и примеров мало. нашел на этом сайте похожую сигналку, а она на протоне написана и аналогию провести не получается. ПОМОГИТЕ
Сообщение отредактировал
Семеркин - Вт, 15.06.2010, 19:28
|
|
|
|
contra |
Дата: Пн, 14.06.2010, 22:04 | Сообщение # 268 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
Quote (ivan_fd) Извиняюсь раньше не мог. Вы можете выложить код программы (*.pbp), а не doc. И на чем вы пробуете, в железе или протеус? Если протеус, то его модель тоже. вот код в pbp:
|
|
|
|
contra |
Дата: Пн, 14.06.2010, 22:07 | Сообщение # 269 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
проверял в Протеусе вот файл:
|
|
|
|
mikhail09p |
Дата: Пн, 14.06.2010, 23:12 | Сообщение # 270 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Quote (mikhail09p) Как на Pic Basic pro написать программу для чтения 12 разрядов температуры датчика DS18B20? Помогите! Да вот же только что было: http://picbasic.ru/forum/5-416-1 Только на ПРОТОНе Вот я ж и просил на PICBasic. А почему КОРЯВО но работает? Добавлено (14.06.2010, 23.12.51) --------------------------------------------- Code OWOut DQ1, 1, [$CC, $44] ' Start temperature conversion waitloop: OWIn DQ1, 4, [count_remain] ' Check for still busy converting if count_remain = 0 Then waitloop OWOut DQ1, 1, [$CC, $BE] ' Read the temperature OWIn DQ1, 0, [temperature.LOWBYTE, temperature.HIGHBYTE, Skip 2, conf, skip 3] if conf = $ff then showerror А можно по-русски Где переменные, не понимаю...
Сообщение отредактировал
mikhail09p - Пн, 14.06.2010, 23:13
|
|
|
|