Hallo zusammen, Hab ein sehr unplausibles Problem:). Also ich möchte mit ner getch()-Routine ein Signal einlesen. Dabei verharre ich in einer while-schleife, bis ein Interrupt(Start-Knopf) eintritt, oder an RXC ein Signal/Daten anstehen. Das funktioniert soweit ganz gut, solange ich keine LED an Port PB3 ansteuere. Ich verstehe einfach nicht, warum PB3 mir den Empfangspuffer blockiert... Ich arbeite mit dem AtMega32 und AVR Studio. Schon mal danke im voraus Hab hier mal meine getch()-Routine: #include <avr/io.h> #include "global.h" #define Bereit_LED PB3 // LED 2 volatile uint8_t Interrupt_Flag; unsigned char getch2 (void) { #ifdef UCSRA while ( !(UCSRA & (1 << RXC)) && (Interrupt_Flag == 0)); { PORTB |= (1<<Bereit_LED); } #else while ( !(USR & (1 <<RXC))); #endif PORTB &=~ (1<<Bereit_LED ); return UDR; }
Andy schrieb: > Ich verstehe einfach nicht, warum PB3 mir den Empfangspuffer > blockiert... Deine Analyse ist höchst wahrscheinlich falsch > > volatile uint8_t Interrupt_Flag; > > unsigned char getch2 (void) > { > #ifdef UCSRA > > while ( !(UCSRA & (1 << RXC)) && (Interrupt_Flag == 0)); > { > PORTB |= (1<<Bereit_LED); > } Die Idee dürfte sein, dass du eine LED leuchten lässt, solange getch2 wartet. Du siehst die LED aber nicht aufleuchten. Korrekt? Sieh mal hier > while ( !(UCSRA & (1 << RXC)) && (Interrupt_Flag == 0)); der kleine ; ganz am Zeilenende Siehe auch Beitrag "Re: ADC will nicht"
ist leider nicht mein Problem:), da ich das Semikolon nur vergessen hab im Beitrag hier rauszulöschen. Wenn ich die schleife per Interrupt verlassen möchte, oder die Led auf einen anderen Port lege, funktioniert alles einwandfrei:(....
Andy schrieb: > ist leider nicht mein Problem:), da ich das Semikolon nur vergessen hab > im Beitrag hier rauszulöschen. Ok. Dann ist es auch nicht mehr mein Problem. Code überträgt man immer mit Copy&Paste in ein Forum und niemals indem man ihn neu tippt. Sonst suchen die Leute nämlich Fehler, die nicht in deinem wirklichen Code enthalten sind. Schönen Tag noch. Ein Tip noch: Dein Problem liegt dann nicht in der getch2 Funktion, sondern in den Codeteilen die du nicht zeigst. Welche Schlüsse du jetzt aus diesem Tip ziehst ... das überlasse ich dir.
Heute schlechte laune hm? Hab mit Copy&Paste gearbeitet, hatte aber da einige Änderungen drin, die nicht mein eigentliches Problem wiederspiegeln würden -> deshalb musste ich was ändern und deshalb ist der Fehler entstanden. Den ganzen Quellcode kann ich dir leider nicht zeigen... Ist erstens zu viel und zweitens teilweise Firmenintern. Hab momentan den verdacht, dass sich Hardware-technisch ein Problem eingeschlichen hat. Das Problem wandert nämlich mit der Vedrahtung mit, wenn ich diese auf nen anderen Port ziehe. kann ne lange suche werden...
Andy schrieb: > Heute schlechte laune hm? Bei sowas bekommt man irgendwann schlechte Laune. Ich bin in letzter Zeit auch gelegentlich auf Kollisionskurs :-) Es macht einfach keinen Spaß, Leuten zu helfen, die nur Bruchteile der Wahrheit erzählen: - miese Beschreibung des Problems. tw. kaum zu entziffern - keine Schaltungen - nur Bruchteile von Quelltexten - oder wie hier Quelltext, der so gar nicht benutzt wurde Da kommt man sich irgendwann veralbert vor.
Andy schrieb: > Den ganzen Quellcode kann ich dir leider nicht zeigen... > Ist erstens zu viel und zweitens teilweise Firmenintern. Den will auch gar niemand sehen. Mach dir doch die Mühe, das Problem auf ein kleines und übersichtliches Programm zu reduzieren. Wenn du das dann vollständig zeigst, kann man auch helfen. Wenn du dir die Mühe nicht machen willst, wieso sollen dann andere die Zeit sinnlos vergeuden mit falschen Quelltextfragmenten?
Tut mir ja auch leid. War ein kleiner Fehler von mir...aber kann ja mal vorkommen oder? Kann halt nur nicht denn ganzen Quellcode hier einsetzen...gibt ja auch sowas wie Firmengeheimniss. Kann ja ne Arbeit von Wochen nicht einfach so veröffentlichen. Auch verständlich oder?
Könnt ich machen, hast recht... Glaub aber momentan echt eher, dass es an der Hardware liegt... ich setz später mal was rein ok?
Klaus Wachtler schrieb: > PS: Das dann auch lesbar zu formatieren, wäre auch nett. und auch mal unter Formatierung nachschauen, mit
1 | [c]C-Code[/c] |
kann man hier schön übersichtlich Quelltext einfügen, sogar in Farbe und bunt ;-)
So jetzt hat sich dass Problem gelöst. War anscheinend schlecht verlötet. Trotzdem danke für die Hilfe, und auch für eure Belehrungen:). Nehmts mir Bitte nicht übel.
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.