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

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

Ответ: Есче вопросик

Отправлено Anrdey19888 03 марта 2007 г. 02:43
В ответ на: Разумеется :)) отправлено =AVR= 02 марта 2007 г. 21:45

Для проверки решил вывести в порт D то что принимаю на порту B и получается что если выводишь r17 то все нормально работает, а если r18 то в порту все нули??? Посмотрите код пож-ста...По таймеру опрашивается порт.


.include "tn2313def.inc"

.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20

.cseg
.org 0

rjmp Reset ;вектора прерываний
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP


;Reset:
INT_0:
INT_1:
Timer1_capt1:
;Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti
;****************************************************
; ИНИЦИАЛИЗАЦИЯ
;****************************************************
Reset:
ldi Temp,0b1111111 ;настройка портов
out DDRD,Temp

ldi Temp,0b00000000
out DDRB,Temp

ldi Temp,0b01000000 ;разрешить прерывание компаратора
out TIMSK,Temp

ldi Temp,0b00000010 ;тактовый сигнал = CK/8
out TCCR1B,Temp

ldi Temp,0x75 ;инициализация компаратора
out OCR1AH,Temp

ldi Temp,0x30
out OCR1AL,Temp

ldi Temp,RamEnd ;установка указателя стека
out SPL,Temp

ldi Temp,0b0000000 ;инициализация индикатора
out PortD,Temp

ldi Temp,0 ;обнуление таймера
out TCNT1H,Temp
out TCNT1L,Temp

sei ;разрешить прерывания


;****************************************************
; ОСНОВНОЙ ЦИКЛ
;****************************************************
Inf:

mov r18,r17 ; Copy r17 (x) to r18
andi r17,0x0F ; r16_0..3 = x low nibble
swap r18 ; r17_0..3 <-> r17_4..7
andi r18,0x0F ; r17_0..3 = x high nibble

;out portD,r17 ;выводит в порт то что было принято на PB0-PB3
out portD,r18 ;всегда выводит в порт нули

rjmp Inf


; ОБРАБОТЧИК ПРЕРЫВАНИЯ КОМПАРАТОРА
Timer1_comp1:
ldi Temp,0 ;обнуление таймера
out TCNT1H,Temp
out TCNT1L,Temp


in Temp1,PinB

reti ;выход из обработчика

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

Ответы


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

Сообщение:

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

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

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

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