Wahrscheinlich aus Geschwindigkeitsgründen werden nicht alle Darstellungen des Simulator während der Ausführung des Programms aktualisiert. Dies wird aber in vielen anderen Simulatoren auch nicht gemacht.Zitat von M*I*B
Wenn du die aktuellen Werte sehen möchtest, kannst du die Ausführung jederzeit anhalten. Entweder durch die Knöpfe oben links oder durch Haltepunkte (Breakpoints), die du auf alle Zeilen setzen kannst, die vorne einen gelben Punkt haben.
halte ich für eine gute Übung und auch machbar. Ich schätze auch, dass der tiny84 dazu locker in der Lage sein sollte.Zitat von M*I*B
Du kannst jedes Bit der ganzzahligen Variablentypen separat auf 0 oder 1 setzen. Ebenso die einzelnen Pins eines Ports.Zitat von M*I*B
My_Byte.0 = 0 setzt dir das Bit 0 von My_Byte auf 0, alle anderen bleiben unverändert
My_Long.30 = 1 macht das entsprechende bei der Long Variable.
PortA.3 = 1 setzt den Pin3 von PortA auf High-Pegel, bzw. schaltet den PullUp ein.
Das geht auch mit einem Alias
Ausgang alias PortA
Ausgang.3 = 1 hätte den gleichen Effekt.
Zeig mal den Code dazu. Bedenke auch, dass der Pin immer noch mal auf High gehen muss, ansonsten gibt es keine Ausführung der Sub. Die Zeit Überwachung von Debounce funktioniert im Simulator glaube ich nicht.Zitat von M*I*B
Wenn du dir das Datenblatt des Tiny84 anschaust, dann wirst du feststellen, dass es keinen PCINTx direkt gibt. Anders als der externe Interrupt INT0 werden die PCINT Eingänge gemeinsam abgefragt.Zitat von M*I*B
Die PCINTs von Porta sind unter PCINT0 zusammengefasst, die von PortB unter PCINT1.
Wenn du den Pin 3 von PortA benutzen willst, musst die diesen aktivieren. Dies geht über PCMSK0.3 = 1 oder auch PCMSK.PCINT3 = 1
Den Sprung in die ISR legst du so fest:
On PCINT0 PCINT0_ISR
wobei der Name PCINT0_ISR willkürlich gesetzt werden kann.
Wenn du mehrere aktive Pins hast, dann musst du nun in der ISR rausfinden, welcher gesetzt ist.
Lesezeichen