реклама на сайте
подробности

 
 
> Помощь новичку в 16F629, Настройка портов ввода-вывода
lagros
сообщение Jun 15 2007, 06:59
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 29-12-05
Пользователь №: 12 678



Долго думал, но решился. Может поможете.
Значит так. Решил попробовать написать программу, в частности, плавного повышения напряжения. Принцип ШИМ.
Описание: первая переменная меняется от 0 до 255. Вторая наоборот от 255 до 0.
первая управляет длительностью "1" на выводе GP2, а вторая соответстванно длительностью "0"
Получается, что на выводе GP2 меняется ширина (скважность) импульса.
Саму программу более-менее написал, но настроить порты GP2 и GP3 (GP3 пока не используется, это для будущего) не могу. Читал даташит, пробовал писать как там приведено в примерах, не получается.
Может поможет кто... В крайнем случае может есть у вас какой исходник, в котором описано все это. Желательно лишнее убрать, чтоб мозги успели все переварить... И если можно, коментарии поподробнее.
В глобальном плане такая задача: При нажатии кнопки (GP3) на выводе GP2 плавно (2-4 сек.) повышается напряжение. Как только оно стало MAX, процесс останавливается, но на выводе, например GP4, также начинает повышение напряжения от 0 до MAX. После этого все останавливается.
Как только отпущена кнопка GP3, все идет в обратной последовательности: сначала плавно понижается напряжение на GP4, потом на GP2. Все.
Исходник приложил.
Прикрепленные файлы
Прикрепленный файл  light.zip ( 730 байт ) Кол-во скачиваний: 100
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vanner
сообщение Jun 15 2007, 09:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 23-10-05
Пользователь №: 10 016



с даташита:
Код
bcf   STATUS,RP0    ;Bank 0
clrf  GPIO          ;Init GPIO
movlw 07h           ;Set GP<2:0> to
movwf CMCON         ;digital IO
bsf   STATUS,RP0    ;Bank 1
clrf  ANSEL         ;Digital I/O
movlw 0Ch           ;Set GP<3:2> as inputs
movwf TRISIO        ;and set GP<5:4,1:0> аs outputs

К тому на этот чип есть даташит на русском языке.
Чтобы GP3 использовать как вход, нужно в конфигурации задать его использование как цифрового входа, а не как резета.
Go to the top of the page
 
+Quote Post
lagros
сообщение Jun 15 2007, 11:03
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 29-12-05
Пользователь №: 12 678



Цитата(vanner @ Jun 15 2007, 13:52) *
с даташита:
Код
bcf   STATUS,RP0;Bank 0
clrf  GPIO        ;Init GPIO
movlw 07h         ;Set GP<2:0> to
movwf CMCON    ;digital IO
bsf   STATUS,RP0;Bank 1
clrf  ANSEL    ;Digital I/O
movlw 0Ch         ;Set GP<3:2> as inputs
movwf TRISIO;and set GP<5:4,1:0> аs outputs

К тому на этот чип есть даташит на русском языке.
Чтобы GP3 использовать как вход, нужно в конфигурации задать его использование как цифрового входа, а не как резета.


Мне МПлаб выдал ошибку:
Error[113] C:\4\LIGHT.ASM 16 : Symbol not previously defined (ANSEL)
Message[302] C:\4\LIGHT.ASM 18 : Register in operand not in bank 0. Ensure that bank bits are correct.

Скажите, что такое ANSEL? В расскам даташите этой строки нет...
И еще в вашем примере: movwf TRISIO ;and set GP<5:4,1:0> аs outputs
а в русскоязычном: movwf TRISA ;and set GP<5:4,1:0> аs outputs
почему так? Дело в том, что я подставлял с русскоязычного даташита, и у меня МПлаб выдал еще больше ошибок

Сообщение отредактировал lagros - Jun 15 2007, 11:13
Прикрепленные файлы
Прикрепленный файл  light.zip ( 871 байт ) Кол-во скачиваний: 54
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 00:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01545 секунд с 7
ELECTRONIX ©2004-2016