Forum: Mikrocontroller und Digitale Elektronik ATMega8 IIC Master Slave Problem


von Christian L. (atmeluser)


Angehängte Dateien:

Lesenswert?

Hallo Liebe Mikrocontroller-Freunde,

ich habe 2 Dateien angehangen, mit jeweils einem IIC-Master- und einem 
IIC-Slave-Projekt.

Zur Beschreibung:
Der IIC-Slave misst nach einem Interrupt bei Nulldurchgang die positive 
Halbwelle eines analogen Signals.
Dabei misst er solange nach einem Verfahren, bis er die Spitze gefunden 
hat.
Diesen Wert soll er dem Master übermitteln, sobald dieser anfragt. Es 
handelt sich also um die Übertragung eines einzigen Bytes mit IIC.
Der Master arbeitet als Regler. Er fordert den Wert an und speichert 
diesen in eine Variable. Mit einem Vergleichswert wird ein Toleranzband 
errechnet.
Anschließend wird der angeforderte Wert überprüft ob er im Toleranzband 
liegt. Liegt er mehrmals über oder unter der Toleranzgrenze, wird eine 
entsprechende
Regelschleife aktiviert um solange Gegenzusteuern, bis der Wert wieder 
im Toleranzband liegt.

Mein Problem ist:
Nach dem Einschalten übermittelt er den Wert scheinbar, welchen er 
zuerst misst, also die Spitze und leitet die entsprechende Maßnahme 
(links rum regeln, rechts rum regeln oder gar nichts tun) ein.
Wenn ich jetzt an meinem Spannungsgenerator rum drehe und eine 
Überspannung, Unterspannung oder wieder auf Normalwert stelle, passiert 
nichts mehr. Er bleibt da hängen, was er als erstes übermittelt bekommen 
hat.
Erst nach einem aus- und wieder einschalten (der Vorsorgungsspannung), 
holt er oder bekommt er den aktuell eingestellten Wert und verweilt 
wieder dort bis zum verändern am Generator und weiteren aus- und wieder 
einschalten.

Scheinbar wird die Kommunikation nicht korrekt ausgeführt. Prinzipiell 
sind beide Programme in jeweils dem Projekt identisch, das einzige was 
sie unterscheidet, sind die Dateien für IIC und die Anwendung.

Für Projekt 1:
Die IIC-Dateien sind von Internetseite
http://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc

Für Projekt 2:
Die IIC-Dateien sind von der Internetseite (Hier aus dem Forum)
Beitrag "AVR TWI Master und Slave Funtionen in C"

In den Projekten werdet Ihr zwei Hauptprogramme finden. Meines ist immer 
die main.c.
Es liegen noch eine TWI_Master_main.c und eine TWI_Slave_main.c in den 
Ordnern.
Das sind Beispielprogramme aus dem Internet, an die ich mich gehalten 
habe.
Dieser selbst werden nicht in meinem Programm verwendet.



Schaut Euch bitte den Quellcode an. Über Hilfe bin ich Euch sehr 
dankbar!

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.