Konflikt TIMER1 und PINs einlesen

jo-loom

Neues Mitglied
10. Juli 2010
1
0
0
Sprachen
Als blutiger Anfänger in Sachen AVR Studio 4 bitte ich um Hilfe.

Folgendes, vermutlich sehr banales Problem:

Ich will in Studio 4 ein Programm für ATtiny24 debuggen.
TIMER 1 ist konfiguriert für NORMAL OPERATION bei 1/8 Prescaler.
Beide Pins PORTA.5 und PORTA.6 sind konfiguriert als Inputs mit Pullsps.

Wenn ich im Debugger nun die Pins PINA.5 oder PINA.6 anklicke (auf HIGH setze), passiert Folgendes:
Immer beim Hochzählen des TIMERs 1 (alle 8 Befehlszyklen) löscht dieser mir die beiden genannten PINs.

Wichtig: die beiden Pins entsprechen OC1A und OC1B, werden also vom COMPARE MATCH des Timers bedient.
Dieser ist allerdings deaktiviert (alle relevanten Bits stehen auf '0').
Somit müssten die TIMER 1 Ausgänge OC1A und OC1B nicht mehr mit den physikalischen Portpins verbunden sein.

P.S.: der Jumper C funktioniert einwandfrei - es hängt definitiv mit dem TIMER 1 Einfluss zusammen.

Woran liegts ??? Wäre soooo dankbar für Hilfe.

Code:
IO_PORTS_DIRECTION:                     
          cbi   DDRA,Jumper_A           
          cbi   DDRA,Jumper_B           
          cbi   DDRA,Jumper_C           
IO_PORTS_SETTING:                       
          sbi   PORTA,Jumper_A          
          sbi   PORTA,Jumper_B          
          sbi   PORTA,Jumper_C          
TIMER1:
          ldi   Tmp,0x00                
          out   TCCR1A,Tmp              
          ldi   Tmp,1<<CS11             
          out   TCCR1B,Tmp              
          clr   Tmp                     
          out   TCNT1H,Tmp              
          out   TCNT1L,Tmp              
          sbi   TIMSK1,TOIE1            
PIN_CHANGE_INTERRUPTS:                  
          ldi   Tmp,1<<PCINT1           
          out   PCMSK0,Tmp              
          ldi   Tmp,1<<PCINT10          
          out   PCMSK1,Tmp              
          ldi   Tmp,1<<PCIE1            
          out   GIMSK,Tmp
 
Hallo,

Als blutiger Anfänger in Sachen AVR Studio 4 bitte ich um Hilfe.
dann begrüße ich dich erst mal hier imForum ...
Herzlich Willkommen :flowers:

Ich will in Studio 4 ein Programm für ATtiny24 debuggen.
TIMER 1 ist konfiguriert für NORMAL OPERATION bei 1/8 Prescaler.
Beide Pins PORTA.5 und PORTA.6 sind konfiguriert als Inputs mit Pullsps.

Wenn ich im Debugger nun die Pins PINA.5 oder PINA.6 anklicke (auf HIGH setze), passiert Folgendes:
Immer beim Hochzählen des TIMERs 1 (alle 8 Befehlszyklen) löscht dieser mir die beiden genannten PINs.

Wichtig: die beiden Pins entsprechen OC1A und OC1B, werden also vom COMPARE MATCH des Timers bedient.
Dieser ist allerdings deaktiviert (alle relevanten Bits stehen auf '0').
Somit müssten die TIMER 1 Ausgänge OC1A und OC1B nicht mehr mit den physikalischen Portpins verbunden sein.

P.S.: der Jumper C funktioniert einwandfrei - es hängt definitiv mit dem TIMER 1 Einfluss zusammen.
Hast du das auch schon mal direkt an der Hardware getestet ?
Ich vertraue keinem Simulator weil die Wirklichkeit dann doch immer etwas
anders aussieht :D

Pack dir doch mal nen paar LEDs an zwei freie Pins und setze die so wie
das Ergebnis der PINA.5/6-Abfrage aussieht. Und dann schau dir das mal
in der freien Wildbahn an.

Woran liegts ??? Wäre soooo dankbar für Hilfe.

Code:
TIMER1:
          ldi   Tmp,0x00                
          out   TCCR1A,Tmp              
          ldi   Tmp,1<<CS11             
          out   TCCR1B,Tmp
Danach setzt du TCCR1A auf 0x00
und TCCR1B auf 0x02.
Also müßte laut Datenblatt ...
COM1A1/COM1B1 : 0 / COM1A0/COM1B0 : 0 => Normal port operation, OC1A/OC1B disconnected.
Tja ... also in dem Code-Fragment steckt anscheinend kein Fehler.
Ich würde das mal am Objekt testen.

Wenn es garnix wird, dann stell einfach nochmal den kompletten Code rein.
Eventuell hat sich irgendwo noch was versteckt ...

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)