Hallo Leute, ich habe folgendes Problem (ATMega8)
1 | |
2 | |
beim debugen ist wenn ich im Simulator PINC auf 0x80 setze foo = 0x00 PINC verliert eben falls an der höchstwertigen Stelle das bit und setzt es von 1 auf 0 an was kann das liegen???
|
Anzeige
|
PINCHallo Leute, ich habe folgendes Problem (ATMega8)
beim debugen ist wenn ich im Simulator PINC auf 0x80 setze foo = 0x00 PINC verliert eben falls an der höchstwertigen Stelle das bit und setzt es von 1 auf 0 an was kann das liegen??? Felix Schmidt wrote:
> an was kann das liegen???
Am ATmega8?
Der hat nämlich nur 7 Bits im Port C... :-o
warum das den :-( Ich hab eine weitere Frage wenn ich meinem ATMega8 auf PINC ein Signal von einem anderen Mikrocontroller zukommen lass, wie mach ich das, dass das Eingabe Signal nur einmal verarbeitet wird? mfg flix Felix Schmidt wrote: > Ich hab eine weitere Frage > > wenn ich meinem ATMega8 auf PINC ein Signal von einem anderen > Mikrocontroller zukommen lass, wie mach ich das, dass das Eingabe Signal > nur einmal verarbeitet wird? > Da gibt es mehrere Möglichkeiten. * zb könnte es eine Rückmeldungsleitung geben. A signalisiert an B (am besagten PINC) dass etwas zu tun ist. B signalisiert daraufhin an A zurück: "Verstanden, wird gemacht." Daraufhin zieht A seine Aufforderung wieder zurück. Du und dein Freund vereinbaren, dass du irgendetwas tust, wenn er winkt. Dein Freund winkt, du winkst zurück und machst das Vereinbarte. Durch das Zurückwinken weiss dein Freund, dass du sein Winken gesehen hast und hört seinerseits auf zu winken * Du könntest aber auch 2 Strippen von A nach B ziehen. Auf der einen Strippe signalisiert A was zu tun ist. Jedesmal wenn es etwas neues zu tun gibt wird auch die 2.te Strippe auf 1 gezogen. B beobachtet nun Strippe 2. Standardmässig ist die auf 0. Geht die auf 1, so weiss B, dass auf Strippe 1 ein Kommando anliegt. B führt dieses Kommando aus und wartet dann darauf dass Strippe 2 wieder auf 0 zurückfällt. Erst danach ist B wieder scharf darauf bei einer 1 auf Strippe 2 wieder ein Kommando zu übernehmen. Das geht natürlich nur dann, wenn die Kommandos von A nicht schneller kommen, als sie von B ausgeführt werden können. A muss ja sichergehen können, dass B die 1 auf Strippe 2 auch sieht, bevor A Strippe 2 wieder auf 0 zieht.
Gast
#519909
Oder Interruptfähigen Pin benutzen und auf Flankenwechsel einstellen.
Gast
#519931
Oder Wert speichern und ab und zu nachschauen ob der neue Wert mit dem alten Wert übereinstimmt. Wenn nicht dann Aktion ausführen. Wenn ja dann nix machen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|