Hallo Leute, wenn ich mein Programm auf meinen Atmega 8 brenne funktioniert dies wunderbar. will ich nun die werte in meinem Programm z.B. mit dem Control Center überwachen(ausgeben) dann spinnt meine ADC bzw mien Timer0 funktioniert nur bedingt/wie er will... mach ich da was falsch, oder wird da ggf irgendwas doppelt beschrieben? und welche möglichkeit hätte ich wenn das zu umgehen? gruß sven
Sven Weinmann schrieb: > Hallo Leute, > > wenn ich mein Programm auf meinen Atmega 8 brenne funktioniert dies > wunderbar. > > will ich nun die werte in meinem Programm z.B. mit dem Control Center > überwachen(ausgeben) dann spinnt meine ADC bzw mien Timer0 funktioniert > nur bedingt/wie er will... > > mach ich da was falsch, oder wird da ggf irgendwas doppelt beschrieben? > und welche möglichkeit hätte ich wenn das zu umgehen? > > gruß sven Ohne genauer Beschreibung deiner Schaltung, und der Anwendung wird dir hier wohl keiner weiterhelfen können. Du erzählst gerade, hier ist nen Timer, der geht nicht. Was sollen wir damit anfangen? Eine genauere Beschreibung würde helfen...
naja das problem ist, ich hab eine voll funktionsfähige ADC mit einzelkanalaufruf und ich hab einen sprinft befehl, welchen ich via UCSRA sende -> [c]void sende (char buffer[]) // Funktionsaufruf { // zum Übermitteln einer Zeichenfolge for (int i=0; buffer[i]!=0; i++) // For-Schleife: Abbruch wenn Zeichenfolge { // zu Ende ist, sonst "i" inkrementieren while (bit_is_clear(UCSRA,5)) // Solange Zeichen noch nicht vollständig... { ; } // ...übermittelt wurde, tue nichts! (warte) UDR=buffer[i]; // Danach: Sende aktuelles ("i"-tes) Zeichen } } [/] in kombination klappt das nicht! warum verstehe ich nicht! manchmal ist es sogar so, dass ich wenn ich die ausgabe benutze sogar erst das control center "verbinden" muss damit mein programm läuft. der quellcode von timer0 und adc sind korrekt. ich denke eher, dass sich da irgendwelche register beissen.
Moment, nur zum Verständnis, du schickst ein Signal über den UART raus, und wo kommt da der ADC in spiel, was soll den der ADC machen?! Wenn ich den Quellcode richtig interpretiere (und meine grauen Zellen das noch so im Kopf haben...) liest du einfach aus einem charbuffer, zeichen für zeichen in das UDR ein? Sprich er schickt nach und nach ein Zeichen über den UART raus? Was meinst du jetzt mit "Kombinieren", was möchtest du den wie Kombinieren?
Sebi2020 schrieb: > Wenn ich den Quellcode richtig interpretiere (und meine grauen Zellen > das noch so im Kopf haben...) liest du einfach aus einem charbuffer, > zeichen für zeichen in das UDR ein? Sprich er schickt nach und nach ein > Zeichen über den UART raus? völlig richtig, eine andere art eine variable am bildschirm anzuzeigen kenne ich nicht! Sebi2020 schrieb: > Moment, nur zum Verständnis, du schickst ein Signal über den UART raus, > und wo kommt da der ADC in spiel, was soll den der ADC machen?! auch da stimme ich dir zu! die adc liest mir nur einen potiwert ein, wie und warum hat der was mit dem UART zutun! das ist mein problem. kommentiere ich die zeilen hier aus:
1 | sprintf (puffer, "Permanent: %d , Timerwert: %d , B: %d , A: %d , I: %d \n", position_Y, timerwert, B, A, I); |
2 | sende (puffer); |
funktioniert mein programm wunderbar. lasse ich sie über uart senden "steht" mein timer oder er gibt nur müll aus oder die adc gibt eben sachen aus die nicht stimmen etc.... das macht doch kombiniert keinen sinn! ich habe auch schon alle register die ich nutze gecheckt und verglichen. weder timer0 noch adc noch uart nuzten irgendwas gemeinsam. wie kann das denn sein?
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.