Hallo AVR Cracks Ich arbeite mit dem AVR2313. ich möchte in meiner Software nach Bit-Zuständen abfragen, welche in einer von mir definierten Variabel enthalten sind //************************************* //die definition der Variabel static volatile uint8_t move_reg; //die definition der Bits in der Variabel #define acc_ramp =0 #define dec_ramp =1 #define dir_cw =2 #define dir_ccw =3 //der Zugriff auf das Bit (versuchte Variante 1) if(move_reg,dir_ccw) { } //Zugriff Variante 2 if(bit_is_set(move_reg,dir_ccw) { } //Zugriff Variante 3 if((move_reg,dir_ccw)==1) { } //************************** >>der avrgcc compiler gibt mir dabei immer Fehler aus!! Ich habe im Assembler-instruction-set gesehen, dass es einen Befehl SBRC und SBRS gibt, welche bits in Registern kontrollieren. Nun habe ich nirgens ein "C"-Befehl dafür gefunden. Hat jemand von Euch eine Idee, wie ich das Lösen kann. Vielen Dank Gruss Kay
if( move_reg&(1<<dir_ccw) ) ist wahr sofern das bit dir_ccw in move_reg gesetzt ist
Hallo Lars Das sieht doch schon nach einem Kurzen Befehl nach meinen Vorstellungen aus! Meine Fragen dazu: -kann ich den Befehl gerade so eintippen (Klammern)? (oder so: if(move_reg&(1<)) -Wie sieht dieser Befehl in asm aus? Vielen Dank für Deine Hilfe Gruss Kay
also die Darstellung ist so im Forum nicht möglich. werde es mal so versuchen, danke Lars
hmm irgendwie geht das nicht sehr seltsam....liegt am forum also ich probier das mal so zu schreiben mit worten :) if "klammerauf" move_reg "und" "klammerauf" 1 "kleiner kleiner" dir_ccw "klammerzu" "klammerzu"
hi hi komischer Effekt. Danke Lars, habe es auch so interpretiert. werde mal versuchen dies so zu übernehmen. Mal schauen was der avrgcc dazu meint. Gruss Kay
das will bei mir nicht so richtig funzen. Der compiler gibt immer die Fehlermeldung: >>parse error before '=' ..obwohl ich kein "=" im Code habe. (Mein Notebook muste ziemlich viel schimpf und schande anhören...;-) Das selbe Problem hatte ich schon mit den ersten 3 Versuchen. muss ich noch zusätzliche "Headers includen". folgende sind bereits vorhanden. >>>************************ #include <io.h> #include <io2313.h> #include <sig-avr.h> #include <interrupt.h> #include <inttypes.h> #include <progmem.h> #include <eeprom.h> #include <iomacros.h> #include <stdlib.h> >>>************************ Gruss Kay
hi hi also auch in Worten.. io.h , io2313.h , sig-avr.h , interrupt.h , inttypes.h , progmem.h , eeprom.h , iomacros.h , stdlib.h ..sind integriert
Das Problem mit den Klammern im Forum sollte jetzt gelöst sein...
ufff ich habe den Fehler gefunden (ich dachte mir noch es sei so was banales..... ich habe die Bit-Definition so geschrieben #define dir_ccw =3 ..dort wird aber die Zuweisung ohne "=" erwartet.. das ist meine Erkenntnis für heute Nachmittag.....;-) das Positive dabei ist, dass ich nun durch das Probieren verschieden Wege gefunden habe Ich Danke Euch vielmals für die Unterstützung!! Grüsse aus der Schweiz PS: Andreas, ich werde den Code gerne im Forum posten, wenn SOLCHE Fehler eliminiert sind.
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.