Hallo,
ich hoffe, ihr könnt mir weiterhelfen. Hab ein kleines einfach Programm
geschrieben um die timer zu verstehen....leider klappts das ganze nur in
der simulation so, wie ich es will (LEDS an PORTB sollen blinken) ATMEGA
8515 @ 4MHz
1 | #include <avr/io.h>
|
2 | #include <stdint.h>
|
3 |
|
4 | int main (void) {
|
5 |
|
6 | int count=0;
|
7 |
|
8 | DDRB = 0xFF;
|
9 |
|
10 | TCCR0 |= ((1<<CS02) | (1<<CS00));
|
11 |
|
12 | while(1){
|
13 | PORTB=0xff;
|
14 | if(TOV0==1){
|
15 | TIFR |= (1<<TOV0);
|
16 | count=count+1;
|
17 | if(count==3906){
|
18 | PORTB = 0x00;
|
19 | count=0;
|
20 | };
|
21 | };
|
22 | };
|
23 |
|
24 | };
|
Meiner rechnung nach sollte bei nem prescaler von 1024 und 4mhz in der
sekunde 3906 overflows stattfinden....also sollte portb alle 1 sec
einmal ganz kurz blinken....bei mir sinds aber bestimmt 10 mal pro
sec...der avr läuft auch sicher auf 4mhz quarz!!
Wo ist mein fehler?
Vielen dank für eure hilfe!
Deacy
die LEDs an meine STK500 sind augenscheinlich dauernd an, obwohl ich nen
prescaler von 1024 verwende....das sollte ja zumindest