mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega8 IIC Master Slave Problem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian L. (atmeluser)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.