Hallo,
ich versuche mich gerade in 16-Bit-Zähler einzuarbeiten.
Dazu habe ich einen ATMEGA-8 genommen, ihn mit Wiederstand und
Kondensatoren in ein Breadboard gesteckt und mit 1-kOhm-Wiederständen
die Ports C0-5 mit LEDs bestückt.
Irgendwie mache ich alles so, wie in den Tutorials und Threads
beschrieben (oder nicht???) und trotzdem gibt es bei mir zwei Probleme:
1.Die LED an PORTB5 leuchtet nicht.
2.Die LEDs blinken nicht.
Hier der Quellcode:
1 | #include <avr\io.h>
|
2 | #include <avr\interrupt.h>
|
3 |
|
4 |
|
5 | volatile int counter = 0;
|
6 | volatile int set = 0;
|
7 |
|
8 | ISR (TIMER1_COMPA_vect){
|
9 | counter++;
|
10 | if(counter == 3){
|
11 | counter=0;
|
12 | if(set==0){
|
13 | set=1;}
|
14 | if(set==1){
|
15 | set=0;}
|
16 | }
|
17 |
|
18 | }
|
19 |
|
20 | void init(){
|
21 | DDRC = 0b00011111;
|
22 | TCNT1 = 0;
|
23 | OCR1A = 12500;
|
24 | TCCR1A = (1<<WGM12);
|
25 | TIMSK = (1<<OCIE1A);
|
26 | TCCR1B = (1<<CS11) | (1<<CS10);
|
27 | set = 0;
|
28 | sei();
|
29 | }
|
30 |
|
31 |
|
32 | int main(void){
|
33 | init();
|
34 | while(1){
|
35 | if (set==0){
|
36 | PORTC = 0b00011111;}
|
37 | if (set==1){
|
38 | PORTC = 0b00000000;}
|
39 | }
|
40 | }
|
Könnt ihr mit vielleicht helfen?
mit freundlichen Grüßen,
Valentin