FAQ | Points | Add... | Recent posts | Search | Register | Log in


[atmega32][asm] - problem z Timer1


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [atmega32][asm] - problem z Timer1
Author
Message
sebastiankozub
Poziom 9
Poziom 9


Joined: 05 Mar 2007
Posts: 35
Location: Leszno

Post#1 Post from the author of the topic 11 Jan 2009 23:52   

[atmega32][asm] - problem z Timer1


witam mam problem z wywolaniem przerwania od timer1 - od zdarzenia typu CTC, program ma wygrywac melodyjke na buzzerku, przerwanie od timer0 smiga - jest odpowiedzialne za generowanie sygnalu na wyjsciu OC0, a timer1 ma zmieniac nutki - podmieciac liczbe w OCR0 liczba z tablicy melodia... ale nie zmienia i nie moge znalezc przyczyny :/ wydaje mi sie ze wogle nie jest wywolywane przerwanie od timer1

Code:
.include "m32def.inc"

rjmp init               ;inicjalizacja
.org OC1Aaddr            ;przerwanie od timer1
rjmp int_T1

init:

ldi r16,low(RAMEND)      
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16

ldi Zh,high(melodia<<1)
ldi Zl,low(melodia<<1)

ldi r18,1

ldi r16,0               ;timer0 inicjalizacja
out TCCR0,r16            ;tryb Clear Timer on Compare Match
sbi DDRB,DDB3              ;zmienia stan na wyjsciu OC0
lpm r16,Z+                 ;gdy zliczy do wart wpisanej do OCR0
out OCR0,r16
ldi r16,0b00011011
out TCCR0,r16

ldi r16,0               ;timer1 inicjalizacja
out TCCR1A,r16
out TCCR1B,r16

ldi r17,high(256)
ldi r16,low(256)
sts OCR1AH,r17
sts OCR1AL,r16

ldi r17,0
ldi r16,0b00001101
sts TCCR1A,r17
sts TCCR1B,r16

ldi r16,0b00010000
sts TIMSK,r16

sei

main:
rjmp main

;------------------------------------------------------------------------------
int_T1:

lpm r16,Z+                  ;wpisanie wysokosci nuty
out OCR0,r16
cpse r16,r18               ;jesli koniec melodyjki pomiń reti
reti
ldi Zh,high(melodia<<1)        ;i wroc do poczatku tablicy
ldi Zl,low(melodia<<1)
reti

;------------------------------------------------------------------------------------------------

melodia:
.db 30,90,120,29,0,26,0,26,0,26,26,0,26,26,26,26,0,29,29,0,29,29,0,29,29,0,29,29,0,25,0,
25,0,25,25,0,25,25,25,25,0,26,26,0,26,26,0,26,26,0,29,29,0,26,0,26,0,26,26,0,26,26,
26,26,0,29,29,0,29,29,0,29,29,0,1    

;------------------------------------------------------------------------------------------------

Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 11 Jan 2009 23:52   





Back to top
   
chudybyk
Poziom 18
Poziom 18


Joined: 11 Jan 2007
Posts: 465
Location: Mikołów

Post#2 12 Jan 2009 12:18   

Re: [atmega32][asm] - problem z Timer1


Zwykle w przerwaniu się zapisuje używane rejestry na stos, ale widzę, że program główny zatrzymuje się w pętli. Nie napisałeś procedurki z timera T0, gdyby używała tych samych rejestrów co przerwanie T1, to będzie kaszana. Gorąco polecam pop i push! ;-)

Zmień instrukcje sts na out, zdaje się, że adresy dla tych instrukcji są przesunięte.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [atmega32][asm] - problem z Timer1
Page 1 of 1
Similar topics
[Atmega8][ASM]Timer1 phase and frequency correct PWM (1)
Duża niedokładność Timer1 w ATmega32 (5)
[Atmega88][asm] - Timer1 i OCR1A źle odmierza czas (3)
[ASM][TIMER1] Dziwnie działa na początku, potem normalnie (2)
[mega32][C/ASM] 3 PWMy 8 bitowe (skracanie timer1 do 8 bit) (20)
2313; asm; timer1; dziwne liczenie czasu (2)
[atmega8][asm] timer1 sterowanie OC1A (2)
[Atmega32][ASM] Problem z ADC (10)
ATmega32 i timer1. Odmierzanie czasu w przybliżeniu 1s. (2)
[ATmega32][c] Przerwanie od porównania w timer1 - ograniczenia (10)

Page generation time: 0.106 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed