Flankenerkennung in der ISR, Timer 0

Gast #1459048
Hallo,
ich benutze den Timer0 als Rechteckgenerator am Pin PB3.
Wie kann ich in der ISR von Timer0 überprüfen, ob die Flanke jetzt oben 
oder unten ist? So wie ich verstanden habe wird die ISR bei steigender 
und bei fallender Flanke aufgerufen. Könnte man vielleicht dafür eine 
Variable Flanke unten/oben jedes mal umschalten, wenn man weiss welche 
zuerst
kommt? Ich habe leider kein Oszi zur Hand, bit_is_set(PINB, PB3) 
funktioniert nicht.



void timer_0_ini( void )
{
  TCNT0=0x00;
  TIMSK|=(1<<OCIE0);
  TCCR0= (1<<WGM01) | (1<<COM00) | (1<<CS01) | (1<<CS00);
  OCR0 =0;
}

ISR(TIMER2_OVF_vect)
{
   Flanke oben/unten?
}
Gast #1459080
Danke,
es soll heisen:


ISR(TIMER0_COMP_vect)
{
...


Pin auslesen geht nicht!? In dem Datenblatt steht, wenn COM01 oder COM00 
gesetzt, normale Funktion wird überschrieben, wahrscheinlich deswegen 
funktioniert Pin auslesen nicht.

Welche Flanke wird zuerst in der ISR abgefangen?
Gast #1459110
>ISR(TIMER0_COMP_vect)
>{
>...
>
>Pin auslesen geht nicht!? In dem Datenblatt steht, wenn COM01 oder COM00
>gesetzt, normale Funktion wird überschrieben, wahrscheinlich deswegen
>funktioniert Pin auslesen nicht.

>bit_is_set(PINB, PB3)

Was hat PB3 bei welchem AVR mit Timer0 zu tun?
Gast #1459126
Per HW toggeln macht wenig Sinn, wenn in der zugehörigen ISR mit 
gleicher Aufruffrequenz der Status abgefragt wird.

Da wäre es sinnvoller den Portpin gleich in der ISR per SW zu toggeln, 
dann kennt man auch den Zustand des Pins.

Nur stehen für die ISR < 64 Takte zur Verfügung.
Gast #1459137
Hallo,

lege dich doch einfach mal in der main loop auf die Lauer und frage den 
PIN auf Änderungen ab.

Laut Timer/Counter Blockdiagramm geht der Ausgang am PIN vorbei

MfG

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.