| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Ещё один ламерский вопрос по портам I/O |
| Автор: anterior 26.4.2009, 06:17 | ||
Есть Atmega168. Там порт PD1 (PORTD) имеет несколько альтернативных функций - (PCINT17/TXD). Я соеденил этот контакт (PD1) со светодиодом, набрал такой код:
По идее при выполнении этой программы светодиод должен мигать, но этого не происходит. Если я переставлю светодиод на другой контакт, например PC5 (PORTC), и соответственно аналогично отредактирую код, то всё работает. Как сделать чтобы работало и на PD1? |
| Автор: sally555 26.4.2009, 08:52 |
| На любом выводе порта D такая штука? Прежде всего я всегда выключаю при программировании JTAG интерфейс программирования,фьюз-битом JTAGEN.потому как он изначально включен и влияет на определенные порты,сейчас не помню какие.И еще PD1 задействован как выход USART,так что при работе с ним как с портом USART должен быть выключен. |
| Автор: anterior 26.4.2009, 09:34 | ||||
Нет, только на PD0, PD1. А как выключить USART? Я пробовал сделать так, добавить в начало:
Но ничего не помогло. И ещё, дело в том что я использую плату Arduino. Для него вобще-то идёт своя IDE, где программы пишутся на Processing/Wiring. Там я побробовал написать что-то подобное и оно работало конкретно для PD1. Но я хочу писать программы на асме, поэтому Arduino-IDE вместе с Wiring'ом не использую, использую AVRStudio. |
| Автор: sally555 27.4.2009, 06:40 | ||
| Отключение передачи USART,регистр UCSRB, бит TXEN = 0, Отключение приема USART,регистр UCSRB, бит RXEN = 0. Примерно так:
На плате Arduino выводы PD0 и PD1 соединены с модулем-преобразователем USB->RS232,скорей всего из- за этого и не работает. |
| Автор: anterior 27.4.2009, 14:25 | ||||||
Спасиб, понял) Следующий код помещённый в начало RESET'a помог:
|