Timer0 Attiny2313 Problem

Gast #1375314
Hallo!

Versuche im folgenden Programm Timer0 zum laufen zu bringen. Timer1 
funktioniert so wie es sein soll, aber die LED im Timer0 wird nicht 
getoggelt. Helft mir mal auf die Sprünge, was hab ich übersehen.

mfg,
Bjoern
1
#include <avr/interrupt.h>
2
#include <avr/pgmspace.h>
3
#include <avr/io.h>
4
#include <avr/wdt.h> 
5

6
#define F_CPU 7372800L                  // Systemtakt in Hz
7

8
#define LEDPORT PORTB              
9
#define LEDPIN  PINB
10
#define LEDDIR   DDRB
11

12
#define LED_INIT()  LEDDIR = 0xFF
13

14
#define LED1_ON()  PORTB &=~(1<<0)
15
#define LED1_OFF()  PORTB |= (1<<0)
16
#define LED2_ON()  PORTB &=~(1<<1)
17
#define LED2_OFF()  PORTB |= (1<<1)
18
#define LED3_ON()  PORTB &=~(1<<2)
19
#define LED3_OFF()  PORTB |= (1<<2)
20

21

22
#define LED1_TOGGLE() PORTB ^= (1<<0);
23
#define LED2_TOGGLE() PORTB ^= (1<<1);
24
#define LED3_TOGGLE() PORTB ^= (1<<2);
25

26
#define SELECT_POWERDOWN MCUCR |= (1<<SM1) | (1<<SM0) | (1<<SE)    // Macro to select powerdown sleep mode
27
#define SELECT_IDLESLEEP MCUCR &= ~(1<<SM1)    // Macro to select idle sleep mode
28

29
#define DISABLE_AC() ACSR |= (1<<ACD)    // Disable Analog Comperator
30

31
// Watchdog reset handling
32

33
 
34
//------------------------------------------------------------------------
35
//        T0 Interrupt
36
//------------------------------------------------------------------------
37
ISR(TIMER0_OVF_vect){
38

39
  LED1_TOGGLE(); 
40

41
}
42

43
ISR(TIMER1_OVF_vect) {
44
  
45
  LED2_TOGGLE()
46
  
47
} 
48

49
int main(void) {
50

51
  LEDPORT=0xFF;
52
  LED_INIT();
53

54
  TCNT0 = (1<<CS02) | (1<<CS00);      //divide by 1024 - 28 Hz @ 7.372800 Mhz 
55
  //TCCR1B = (1<<CS12) | (1<<CS10);      //divide by 1024
56
  TCCR1B = (1<<CS10);            // - 112 Hz @ 7.372800 Mhz 
57
  TIMSK = (1<<TOIE0) | (1<<TOIE1);      //enable timer interrupt
58

59
sei();
60

61

62
 while(1)
63
  {
64
    LED3_TOGGLE(); 
65
    for(long a = 0;a<80000;a++){asm("nop");};
66

67
  }
68

69
return 0;
70

71
}
#1375334
Tishima schrieb:
> Oliver, ne das ist es auch nicht mit TCCR0, irgendwo muß der Hund doch
> begraben liegen.

Ja, im Datenblatt.
Da gibt es hinten an jedem Abschnitt ne Registerbeschreibung.
Besser gehts wirklich nicht.


Peter
Gast #1375336
Ups,

ja mit TCCR0B haette ich arbeiten müssen, nun kann ich erstmal 
weitermachen.
So wie es aussieht. Muß erstmal weiter im eigentlichen Programm testen.
Danke, für den Denkanstoß.

gruß,
Bjoern

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.