-
Data: 2009-02-21 10:50:00
Temat: Problem z Timerami w Atmega64L
Od: j...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Witam, mam problem z poprawnym uruchomieniem timerow na w/w atmedze.
Do tej pory bawilem sie Atmega32 i problemow nie bylo.
Problem tkwi w tym, ze nie dzialaja mi przerwania od timerow.
Dodatkowo wydaje mi sie (jedynie z obserwacji), ze zmiana
preskalerow tez nie wplywa na szybkosc zliczania...
Porownywanie z wzorcami porownania z OCR(x) tez...
Timery poprostu licza sobie od 0 do 255 i automatycznie zeruja sie.
i tak w nieskonczonosc, zawsze z ta sama predkoscia.
Atmega64L taktowana wewnetrznym generatorem RC 1MHz
Zasilanie 3.3V
Ponizej zamieszczam przykladowy problem, ktory NIE dziala na
Atmedze64L, natomiast bezblednie dziala na Atmedze32:
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/iom32.h>
volatile unsigned int interrupts2 = 0;
volatile unsigned int interrupts0 = 0;
void io_init(void)
{
DDRG &= ~(1 << PG3); // Wejscie TOSC2 - 32kHz
DDRG &= ~(1 << PG4); // Wejscie TOSC1
DDRD &= ~(1 << PD2); // Wejscie RxD
DDRD |= (1 << PD3); // Wyjscie TxD
}
ISR(SIG_OVERFLOW2)
{
interrupts2++;
TCNT2 = 0;
}
ISR(SIG_OVERFLOW0)
{
interrupts0++;
TCNT0 = 0;
}
int main(void)
{
io_init();
uart_init();
TIMSK &= ~(1 << TOIE2);
TIMSK &= ~ (1 << OCIE2);
ASSR |= (1 << AS2);
TCCR2 |= (1 << CS22);
TCCR2 |= (1 << CS20);
while(ASSR&0x07);
TIMSK |= (1 << TOIE2);
TIMSK |= (1 << OCIE2);
OCR2 = 0x99;
TIMSK |= (1 << TOIE0);
TIMSK |= (1 << OCIE0);
TCCR0 &= ~(1 << WGM00);
TCCR0 &= ~(1 << WGM01);
TCCR0 |= (1 << CS02);
TCCR0 &= ~(1 << CS01);
TCCR0 &= ~(1 << CS00);
SREG |= 0x80;
while(1)
{
}
return 0;
}
Rezultat wyrzucam sobie na konsole COM za pomoca uarta
Zmienne interrupts0 i interrupts2 sa ciagle rowne zero...
Prosze o jakies wskazowki, bo juz mi rece opadaja :(
Pozdrawiam, Piotr
Następne wpisy z tego wątku
- 21.02.09 11:01 MoonWolf
- 21.02.09 11:06 j...@g...com
- 21.02.09 11:16 MoonWolf
- 21.02.09 11:30 PH
- 21.02.09 11:32 j...@g...com
- 21.02.09 14:48 j...@g...com
- 21.02.09 19:48 Adam Dybkowski
- 22.02.09 14:38 Robert Zemła
- 23.02.09 10:26 Tom
- 24.02.09 19:18 j...@g...com
Najnowsze wątki z tej grupy
- zagadka sieciowa
- W Polsce powstaje grawitacyjny magazyn energii
- Linux wciąż wspiera dyskietki. Porządki w sterownikach do FDD
- Koniec z instalacją niezatwierdzonych aplikacji na Androidzie
- To koniec Starlinka dla Ukrainy. Karol Nawrocki zdecydował
- [OT] Wycinanie pianki kostkowej / szesciennej
- Alarm do lodówki
- Poczta Polska na Discord-zie
- Aku do UPS
- czy ludzie przestali słuchać muzyki?
- zabawa czatem :)
- Modernizacja instalacji elektrycznej w wielkiej płycie
- Co to za dziwne "białe namioty" co stawiają je w różnych dziwnych miejscach?!?
- RF-Harvester
- jest taki kryzys panie
Najnowsze wątki
- 2025-08-27 zagadka sieciowa
- 2025-08-27 W Polsce powstaje grawitacyjny magazyn energii
- 2025-08-27 Koniec z instalacją niezatwierdzonych aplikacji na Androidzie
- 2025-08-27 W Polsce powstaje grawitacyjny magazyn energii
- 2025-08-27 Linux wciąż wspiera dyskietki. Porządki w sterownikach do FDD
- 2025-08-27 Koniec z instalacją niezatwierdzonych aplikacji na Androidzie
- 2025-08-27 W Polsce powstaje grawitacyjny magazyn energii
- 2025-08-27 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-08-27 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-08-27 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-08-27 Warszawa => Java Full Stack Developer (Angular2+) <=
- 2025-08-27 Kraków => Kotlin Developer <=
- 2025-08-27 Kraków => Programista Kotlin <=
- 2025-08-27 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-08-27 Czego Wysoki Sąd nauczył czyli jakiego zwrotu powinien użyć dziennikarz Pereira ZAMIAST "ustawia hejt"?