PINC

OP #519828
Lesenswert?

Hallo Leute,

ich habe folgendes Problem (ATMega8)
1
DDRC = 0x00;
2
int8_t foo = PINC;

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???
#519861
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren