PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Register setzen in Avr-C -2



luma
26.07.2005, 15:47
Also, C kann ich von Grundlagen her schon (hab ja mittlerweile auch 2 Jahre Javaerfahrung). Nur wie erwähnt diese Operatoren machen mir noch Probleme.
Ich weiß schon, das es da nen Bibliothek gibt (die benütze ich auch), aber ich will verstehen, was die macht und wie sie funktioniert. Und da werden immer so Sachen wie


// change oscillator-frequnecy of Timer 2
// to 40khz, no toggling of IO-Pin
TCCR2 = (1 << WGM21) | (1 << CS20);
OCR2 = 0x64; // 40kHz @8MHz crystal
ADCSRA = 0x00; // ADC off

Da denk ich nur: ? Ist dieses Buch von Roland Walter gut? Ich brauch ambesten eins, in welchem genau auf so ein µC eingegangen wird, erklärt wird für was zu was zu gebrauchen ist (AD-Wandler, komsich Ports A-B-C...). Das wär gut.
Dieses Tut http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial hab ich schon. Mehr als das es mir Kopfschmerzen bereitet tut es allerdings nicht :(.

Rubi
27.07.2005, 08:08
@rubi,
er will den µC verstehen, wie er schreibt, und mit Bascom wird er das nie.


Hallo Sebastian

Ich denke Bascom ist insofern nicht schlecht, da man sich damit schnell ein paar Erfolgserlebnisse bekommt.
Mit diesen kommt auch der Drang nach mehr und in der Not wenn das C Programm auch nach Tagen nicht das macht was man will, kann man immer noch auf Bascom zurückgreifen.
Ich denke für den Anfang ist die Lernkurve für viele einfach zu groß, wenn Sie gleich alles auf einmal lernen möchten.

LG
Rubi

izaseba
27.07.2005, 18:38
Ich denke Bascom ist insofern nicht schlecht,
da man sich damit schnell ein paar Erfolgserlebnisse bekommt.

Hallo Rubi,
Das stimmt vollkommen.
Ich hab auch nichts gegen Bascom, wollte hier kein Krieg zwischen den Fronten anfangen,
jeder nimmt das was er für sich am besten findet.

Man programmiert in Bascom 10 Zeilen, und wenn ich das in Assembler machen will brauche ich vielleicht 200 oder so.

Das ist gut, nur wenn man wirklich verstehen will, was da im Kontroller passiert, ist Bascom wohl nicht die beste Wahl.

Das muß der Lutz alleine für sich entscheiden.

Gruß Sebastian

Rubi
28.07.2005, 08:05
Hallo Sebastian

Mir ist Bascom eigentlich ziemlich egal, ich schreib meine Programme in C.


LG
Rubi

luma
13.08.2005, 16:07
Hio. Passt hier eigentlich nicht so rein...

Was bewirkt denn OCR2 = 0x64;? Ich kapier das mit dem Hexadezimal irgendwo nicht. Wenn man das einzeln macht (mit | und << kapier ich dann schon) aber so???

Rubi
13.08.2005, 16:13
Du mußt halt 0x64 in Binärcode umrechnen.
D.h.: 0x64 = 11001100
Ergo das 3.,4.,7. und 8. Bit werden gesetzt.

LG
Rubi

luma
13.08.2005, 18:30
Warum sind die gestzt wenn 0?

Rubi
13.08.2005, 19:46
??

Die ersten 2 Bits, z.B. sind Null, die werden nicht gesetzt, das 3. und 4. ist eins das wird gesetzt,....
Man kann gleich mehrere Bits auf einmal setzen.

Irgendwie befürchte ich ich habe die Frage nicht verstanden oder du willst mich veräppeln ;-)

LG
Rubi

luma
13.08.2005, 23:44
Ne ne ich will dich ganz und gar nicht veräppeln!

Ich hab halt gezählt. Und zahl Numme 3 z.Bsp ist eine Null... Aber die ersten Bits (1 & 1) sind doch nicht 0???

Rubi
14.08.2005, 10:21
AHHHHHH

Jetzt habe ich es.
Das hat die Verwirrung ausgelöst.
Du zählst von der verkehrten Seite.
Das niederwertigste Bit ist rechts.


LG
Rubi

RCO
14.08.2005, 11:47
Ich hab halt gezählt. Und zahl Numme 3 z.Bsp ist eine Null... Aber die ersten Bits (1 & 1) sind doch nicht 0???

Du ließt hier aber von rechts nach links. Das Bit mit der höchsten Priorität steht links (Bit 7). Bit 0, also das mit der niedrigesten Priorität steht rechts.

17 wäre dann Binär: 00010001
Das Bit 5 (von rechts) steht für 16, das ganz rechts für 1.

luma
15.08.2005, 19:05
Achso! Jetzt ist mir einiges klarer. Danke für die Hilfe :).