Atmega64A Funktionsproblem

Gast #6831789
Lesenswert?
• ▲
▼
Hallo Zusammen,

ich hoffe Ihr könnt mir hier helfen. Ich habe ein, meiner Meinung nach, 
kurioses Problem.

Ich möchte das der Atmega64A acht Schalter (PORTA) ausliest, nachdem der 
PD3 gelöst worden ist und dann auf den Ausgängen (PORTC) die Outputs 
nacheinander kurz einschaltet, welche im Eingang aktiviert sind.

Gar nicht so das Problem dachte ich. In der main Schleife funktioniert 
alles. Dann habe ich versucht den Code ein wenig aufzuräumen. Jetzt 
startet der ATmega immer neu sobald eine Funktion aufgerufen wird.

Beispiel:

In der Main while Schleife, habe ich eine for-schleife drin, die den 
Eingang ausliest und den Ausgang entsprechend aktiviert. Diese Schleife 
habe ich versucht in eine Funktion auszulagern (setCS). Ich habe einfach 
nur die for Schleife in eine Funktion kopiert. Sobald ich die For 
Schleife aus der while auskommentiere und dafür die Funktion reinsetze, 
startet der Atmega immer neu, sobald er die Funktion durchlaufen hat. 
Was sehr komisch ist, aktiviere ich die Funktion und lasse die For 
Schleife in der Hauptschleife drin, sehe ich das beide Schleifen 
ausgeführt werden, da er zweimal die Ausgänge schlatet...

Das gleiche passiert, wenn ich die ganzen Initialisierungen für die DDRs 
und Ports in eine Funktion packe (setupPCB) und diese dann aktiviere und 
im Code auskommentiere. Dann startet er neu, sobald die setupPCB 
Funktion durchgelaufen ist.

Ich bin wirklich überfragt. Ich kann natürlich auch alles in der 
Hauptschleife lassen, würde aber gerne später noch andere Funktionen 
hinzufügen.

Würde es gar nicht funktionieren, hätte ich gedacht es liegt evtl. an 
der Verdrahtung, aber das selbe Verhalten zeigen zwei gleiche 
Microcontroller und wie gesagt in der Hauptschleife funktioniert es 
einwandfrei.

Vielen Dank schon mal für ein paar Tips

Stefan

.
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.