Hallo Zusammen!!! Habe folgendes Problem und weiss zum verrecken nicht woran es liegt. Der gesamte Code ist um einiges länger und tut meines erachtens bei dem Fehler nichts zur Sache. (ok, vielleicht such ich auch am falschen Ende), deshalb hab ich nur den Teil in den Anhang getan, welcher mir wichtig erscheint. Controllertyp ATMEGA128. Compiler CodeVisionAVR. Debug über AVRStudio. Das Problem sollte hoffentlich schon aus meinem Anhang erkenntlich sein, aber ich versuchs nochmal zu erklären. sagen wir ich habe ein single-master, multi-slave-system. jetzt habe ich eine bestimmte senderoutine um einen string an einen slave zu schicken. (siehe anhang "STRING_FUNKTIONIERT") also das klappt problemlos. sobald ich eine zweite routine für einen zweiten slave hinzunehme und egal wann und wo ich in meinem code an einen der beiden slaves einen string senden will, bleibt mir der controller in der jeweiligen routine in der while-schleife hängen. so die while schleife fragt das SPIF (SPI interrupt flag) im SPSR ab. (siehe Anhang "FUNKTIONIERT NICHT") (das bedeutet ja eigentlich das die daten nicht rausgeshiftet werden, wenn er dort hängen bleibt.) weiter unten im anhang sind zwei weitere funktionen um nur einen character an einen der slaves zu senden. dies funktioniert aber wiederum einwandfrei.(siehe Anhang "CHAR_FUNKTIONIERT")
Hallo, ich würde mir jeweils eine Funktion für Strings und Char schreiben. und dann immer vor dem Aufruf den gwünschten slave auswählen. Da es mit CHAR funktioniert, probier doch einfach: while ((chr = *mystr++)!=0) { sendchartoslave(chr); }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.