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

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

Что-то в полночь запутался. Основной цикл не работает..(( Не могу понять где накосячил....

Отправлено Fantomas 28 апреля 2009, г. 14:05


.include "m8def.inc"

.def TempL = r16 ; присваиваем регистру R16 имя TempL
.def TempH = r17 ; присваиваем регистру R17 имя TempH
.def Temp0 = r18 ; Temp0
.def Temp1 = r19 ; Темр1
.def Ir_Rad = r20 ; IR Radiation
.def Ir_Dtc = r21 ; IR Detected
.def LedCCn = r22 ; Led C Change
.def TMR0L = r23 ;
.def TMR0C = r24 ;
.def TMR0T = r25 ;

.cseg

.org 0

rjmp RESET
rjmp INT_0
rjmp INT_1
rjmp TIMER2_COMP
rjmp TIMER2_OVF
rjmp TIMER1_CAPT
rjmp TIMER1_COMPA
rjmp TIMER1_COMPB
rjmp TIMER1_OVF
rjmp TIMER0_OVF
rjmp SPI_STC
rjmp USART_RXC
rjmp USART_UDRE
rjmp USART_TXC
rjmp ADC_
rjmp EE_RDY
rjmp ANA_COMP
rjmp TWI
rjmp SPM_RDY

;RESET:
;INT_0:
INT_1:
TIMER2_COMP:
;TIMER2_OVF:
TIMER1_CAPT:
TIMER1_COMPA:
TIMER1_COMPB:
TIMER1_OVF:
;TIMER0_OVF:
SPI_STC:
USART_RXC:
USART_UDRE:
USART_TXC:
ADC_:
EE_RDY:
ANA_COMP:
TWI:
SPM_RDY:
reti

RESET: ;RESET
;=========================================INIT=========================================;

ldi r16,$00 ; Инициализируем стек
out SPH,r16
ldi r16,$60
out SPL,r16

; Define pull-ups and set outputs high
; Define directions for port pins
ldi Temp0,(1<<PB3)|(1<<PB2)|(1<<PB1)|(1<<PB0) ;Установка линий вывода (Высокого Уровня)
ldi Temp1,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) ;Вывод ШИМ и ИК Диода
out PORTB,Temp0
out DDRB,Temp1

ldi Temp0,(0<<PC3)|(0<<PC2)|(0<<PC1)|(0<<PC0) ;Линии ввода АЦП
ldi Temp1,(0<<DDC3)|(0<<DDC2)|(0<<DDC1)|(0<<DDC0) ; АЦП
out PORTC,Temp0
out DDRC,Temp1

ldi Temp0,(1<<PD2) ;Линии ввода (2=INT0)
ldi Temp1,(0<<DDD2)
out PORTD,Temp0
out DDRD,Temp1

ldi Temp0,(0<<PUD) ; Разрешение Пулл-Апс
out SFIOR,Temp0

; ldi Temp0,(1<<WGM21)|(1<<WGM20)|(1<<COM21)|(1<<COM20)|(1<<CS21) ; инициализация ШИМ 2
; out TCCR2,Temp0

; INT0 Tunning
ldi Temp0,(1<<ISC01)|(1<<ISC00) ;int0 Interrupt on rising Edge
out MCUCR,Temp0

ldi Temp0,(1<<INT0) ;int0 enabled
out GICR,Temp0


;Тут будем инициализировать 8ми битный Таймер0
ldi Temp0,(1<<CS00) ;установить тактовый сигнал = CK/1
out TCCR0,Temp0
ldi Temp0,(1<<TOIE2)|(1<<TOIE0) ;разрешить прерывания нулевого компаратора
out TIMSK,Temp0
ldi Temp0,0b00000000
out TCNT0,Temp0

;Тут будем инициализировать 16и битный Таймер1
ldi tempL,$A1 ; инициализация таймер/счетчика Т1
out TCCR1A,tempL
ldi tempL,(1<<CS12)|(1<<CS10) ; Делитель таймера /1024 от тактовой
out TCCR1B,tempL


;Тут будем инициализировать 8ми битный Таймер2
ldi Temp0,(1<<CS20) ;установить тактовый сигнал = CK/1
out TCCR2,Temp0
ldi Temp0,0b00000000
out TCNT2,Temp0


;Тут будем пытаться инициализировать ШИМ
ldi tempH,$00 ; Заносим значение $00E0 в регистр OCR1A
out OCR1AH,tempH
ldi tempL,$E0 ;
out OCR1AL,tempL
ldi tempH,$00 ; Заносим значение $0010 в регистр OCR1B
out OCR1BH,tempH
ldi tempL,$10 ;
out OCR1BL,tempL

ldi Ir_Rad,0b00000000 ; Обнуление Счётчика ИК
ldi Ir_Dtc,0b00000000 ; Обнуление Счётчика ИК
ldi TMR0T,0b00000000 ; Обнуление Счётчика Таймера
ldi LedCCn,0b00000000 ; Обнуление Состояния диода Колеса

cbi PortB,0

sei ; Разрешили прерывания


;=========================================MAIN=========================================;
Cycle:

sbi PortB,3
nop
nop
nop
cbi PortB,3

rjmp Cycle

TIMER2_OVF:
inc TMR0T
cpi TMR0T,TCNT1H
breq cmp
reti
cmp:
ldi TMR0T,0b00000000
cpi LedCCn,1
breq end
;cbi PortB,3
reti
end:
;sbi PortB,3
reti

INT_0: ;INT_0
cpi Ir_Rad,2
brsh incDTC
ldi Ir_Rad,0b00000000
reti

incDTC:
inc Ir_Dtc
ldi Ir_Rad,0b00000000
reti


TIMER0_OVF:

sbi PortB,0
nop
cbi PortB,0
inc Ir_Rad
reti


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

Ответы


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

Сообщение:

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

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

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

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