Програмирование Микроконтроллеров с "Нуля"
#41
Отправлено 04 мар 2012 - 00:11
#42
Отправлено 04 мар 2012 - 12:55
#43
Отправлено 23 июн 2012 - 20:42
#44
Отправлено 20 июл 2012 - 21:03
винда7 говорит что нет подходящих дров, пытался поставить уже не один десяток дров но ни чего не выходит. что посоветуете?
#45
Отправлено 21 июл 2012 - 00:15
#46
Отправлено 31 авг 2012 - 09:47
Прикрепленные файлы
#47
Отправлено 01 сен 2012 - 10:43
Спасибо буду вникать.Исходник на ASMе пример програмного ШИМ на три канала (лампа настроения) МК PIC12F629/
#48
Отправлено 01 сен 2012 - 11:14
#49
Отправлено 01 сен 2012 - 14:46
Все понятно. Нет пока не ищу мне нужно именно на АSM.Якут , если ищете современую среду програмирования, я тут советов давать не буду, в поисковеке можно найти отзывы и интересные дискусии.
#50
Отправлено 12 июн 2013 - 09:50
Распаковать и в папке с установленной програмой английский help заменяем на русский теперь он доступен при нажатии на клавшу F1 при работе с компилятором.
Прикрепленные файлы
#51
Отправлено 30 авг 2013 - 08:45
#52
Отправлено 20 сен 2013 - 09:38
автор програмки не известен но большое ему спасибо.
Прикрепленные файлы
#53
Отправлено 17 май 2014 - 16:28
Добрый день!
Начал изучать микропаскаль для PIC, так как хочется создавать свои проекты. Если можно, буду задавать здесь вопросы.
МК - pic12f629. Написал программу включения/выключения светодиода по нажатию кнопки. Сначала кнопку привязал к линии GP3 (в даташите прочитал, что она как раз только на вход). Программа откомпилировалась, но в Протеусе не работала. Потом опрашивать состояние кнопки стал на линии GP1, а GP3 через резистор подключил к питанию. Тогда все заработало.
Потом поискал в интернете - пишут, что GP3 нужен для перехода МК в режим программирования и для начальной инициализации. То есть, чтобы заработало, нужно краковременно подать питание на линию GP3. Однако, как я понял, можно как-то настроить конфигурацию, чтобы просто использовать GP3 как линию входа, подключив к нему кнопку, и не подключая питание. Скажите, пожалуйста, где и как настраивается конфигурация, или где почитать про это?
Текст программы:
program ButtonPic12f629; var oldstate : byte; begin // Начало программы GPIO:=0; CMCON:=7; // gp0,gp1 - дискретные линии TRISIO := %00001010; // все линии на вывод кроме gp1 и gp3 oldstate:=1; while TRUE do // основной цикл begin if GPIO.1=0 then oldstate:=0; if ((oldstate=0) and GPIO.1=1) then begin GPIO.0 := not GPIO.0; oldstate := 1; end; end; end.
#54
Отправлено 17 май 2014 - 16:45
Работа GP3 настраивается в регистре конфигурации МК, почиттать можно в даташите, благо на 629 есть Русский мануал. В Микро Паскале я не подскажу где прописывать биты _CONFIG, скорее всего в тексте программы или в специальном окне.
#55
Отправлено 18 май 2014 - 14:28
Меню Project -> Edit project -> в окне конфигурации поставьте поле "GP3/MCLR function pin select" в значение "Disabled" - это отключит функцию внешнего сброса контроллера и позволит использовать его как входной порт.
ЗЫ: Чтоб по вашей схеме обойтись без R2 на кнопке -включите внутренние подтягивающие резисторы порта:
not_gppu_bit := 0; wpu := 0xFF;
Когда бит разрешения установлен, то можно включать/отключать подтяжки индивидуально к каждому пину (кроме GP3) - управление в регистре
WPU: WEAK PULL-UP REGISTER (ADDRESS: 95h)
#56
Отправлено 18 май 2014 - 18:57
Меню Project -> Edit project -> в окне конфигурации поставьте поле "GP3/MCLR function pin select" в значение "Disabled" - это отключит функцию внешнего сброса контроллера и позволит использовать его как входной порт.
Спасибо! Получилось! Теперь работает такой код (попробовал использовать функцию Button):
program ButtonPic12f629; var oldstate : byte; begin // Начало программы GPIO:=0; CMCON:=7; // gp0,gp1 - дискретные линии TRISIO := %00001010; // все линии на вывод кроме gp1 и gp3 while TRUE do // основной цикл begin if Button(GPIO,3,1,1) then oldstate:=1; if ((oldstate=1) and Button(GPIO,3,1,0)) then begin GPIO.0 := not GPIO.0; oldstate := 0; end; end; end.
Чтоб по вашей схеме обойтись без R2 на кнопке -включите внутренние подтягивающие резисторы порта
Тоже получилось. Если я правильно понял, то про биты GPPU и про WPU нужно было читать в даташите (так как справка ничего не выдает)?
Еще обнаружил, что и GPPU, и WPU присутствуют в WatchList'е:
Вопрос: в этом списке присутствует всё нужное для настройки МК? В смысле, его можно использовать как шпаргалку, чтобы, найдя нужное в даташите, посмотреть в этом списке, как оно пишется в данном языке программирования?
Код для программы с кнопкой без внешнего резистора:
program ButtonPic12f629; var oldstate : byte; begin // Начало программы GPIO:=0; CMCON:=7; // gp0,gp1 - дискретные линии TRISIO := %00001010; // все линии на вывод кроме gp1 и gp3 not_gppu_bit := 1; //разрешить подтяжку входов внутренними резисторами //option_reg.7:=1; //разрешить подтяжку входов внутренними резисторами - то же самое, что и в предыдущей строке wpu := 0xFF; //все входы будут подтянуты внутренними резисторами while TRUE do // основной цикл begin if Button(GPIO,3,1,1) then oldstate:=1; if ((oldstate=1) and Button(GPIO,3,1,0)) then begin GPIO.0 := not GPIO.0; oldstate := 0; end; end; end.
И еще вопрос: внешний резистор убирается, а подключение GP3 к питанию остается?
#57
Отправлено 19 май 2014 - 22:26
GP3 к питанию оставлять не обязательно. Теперь это вход, и "подтягивать" его к цепям питания нужно только если то, что к нему подключите имеет в каком-то из состояний высокий импеданс (как например кнопка). Если выход датчика или чего-то там еще обычный цифровой - то резистора не надо.
Описание названий (регистры и константы) можно посмотреть в папке программы в поддиректории DEFs - там лежат паскалевские файлы, в вашем случае смотрите P12F629.mpas.
#58
Отправлено 19 май 2014 - 22:31
leucopsis - выше Gipsy указал "кроме GP3", так что для этого вывода внешняя поддтяжка необходима. При последней модернизации схемы, если нажать на кнопку будет КЗ! Если использовать вывод который имеет внутреннюю поддтяжку, то кнопку надо подключать относительно вывода МК и корпуса.
#59
Отправлено 20 май 2014 - 19:28
Gipsy, SFT - спасибо большое за помощь! Буду смотреть, пробовать. У меня еще много вопросов, но сначала сам покопаюсь, чтобы совсем глупые не задавать :)