Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

А чего тут смотреть - налицо некорректная работа с регистром, одновременно записываемым и в прерывании (temp1), и в основном цикле (r17)

Отправлено =AVR= 03 марта 2007 г. 03:43
В ответ на: Ответ: Есче вопросик отправлено <font color=gray>Anrdey19888</font> 03 марта 2007 г. 02:43

Во-первых, никогда так не делай, назвал регистр Rxx именем - обращайся к нему только по имени, забудь про Rxx. Для корректной работы на время конкурентных обращений всегда нужно запрещать прерывания:


cli
mov r18,r17
andi r17,0x0F
out PORTD,r17
sei
swap r18
andi r18,0x0F
; out PORTD,r18

Во-вторых, для проверки совершенно не нужно было заморачиваться с таймером и прерыванием, достаточно было простого цикла:


foo:
in r17,PINB
mov r18,r17
andi r17,0x0F
swap r18
andi r18,0x0F
; out PORTD,r17
out PORTD,r18
rjmp foo

И, в-третьих, не забывай ставить теги < pre > и < /pre > перед и после кода соответственно, иначе движок конфы будет корежить текст

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru