Martin Fischer schrieb:> Egal, so ist aber richtig
Beim Programmieren ist relativ wenig "egal" und dennoch richtig :-)
Die Bitpositionen mit "1" werden Ausgang, die mit "0" werden Eingang.
Das zumindest hast du richtig.
Martin Fischer schrieb:> X hat den Wert 5...> Ich kenne mich noch nicht so gut mit Bit-Rechnung und so aus...wie geht> das?
So wie alles andere auch.
Eine Zuweisung ist eine Zuweisung. Das komplette Ziel (in diesem Fall
eben ein Register) wird mit einem neuen Wert belegt.
Denk nicht so kompliziert.
1
a = .... neuer Wert a kriegt als ganzes einen neuen Wert
2
3
a |= ( 1 << BitNr ); das Bit 'BitNr' wird gesetzt (auf 1)
4
a &= ~( 1 << BitNr ); das Bit 'BitNr' wird gelöscht (auf 0)
5
6
7
a |= ( 1 << BitNr1 ) | ( 1 << BitNr2 ) ... die Bits BitNr1, BitNr2 werden gesetzt
eben das kleine Einmaleins in der µC-Programmierung.
>Ich habe nur ein c++ Buch, ist das kompatibel?
Was die Grundlagen der Bitmanipulation betrifft, ist das bei C und C++
das selbe.
Allerdings stehe ich dem Argument nahe, das heisst, dass man erstmal C
lernen soll ehe man C++ lernt.
Lies erstmal das Tutorial.
"PB1" ist typ char, oder?
also die Bezeichnung?
und um die zu setzen dann: DDRB |= ( 1 << PB1 ) - PB1 Output
DDRB |= ( 0 << PB2 ) - PB2 Input
und beide werden NAcheinander gesetzt und ich kann das auch so in zwei
Zeilen schreiben?
Deine Aussage aus diesem unterhaltsamen Thread:
Beitrag "Arduino-AVR programmieren"> programmieren kann ich doch schon nahezu perfekt!!!
Schon klar...
Warum liest du denn nicht einfach mal den Artikel zur Bitmanipulation?
Ja, außer BitManipulation...wozu brauchte ich das schon vorher?
"PB1" ist typ char, oder?
also die Bezeichnung?
und um die zu setzen dann: DDRB |= ( 1 << PB1 ) - PB1 Output
DDRB |= ( 0 << PB2 ) - PB2 Input
und beide werden NAcheinander gesetzt und ich kann das auch so in zwei
Zeilen schreiben?
Martin Fischer schrieb:> DDRB |= ( 0 << PB2 ) - PB2 Input
liest du eigentlich, was dir hier geantwortet wurde?
Eine 0 kannst du schieben, so oft du möchtest, es bleibt eine 0
DDRB &= ~(1 << PB2);
und um die zu setzen dann: DDRB |= ( 1 << PB1 ) - PB1 Output
DDRB &= ~( 1 << PB2 ) - PB2 Input
Aber wozu ist das & und nicht der | davor bei:DDRB &= ~( 1 << PB2 ) -
PB2 Input
Martin Fischer schrieb:> Aber wozu ist das & und nicht der | davor bei:DDRB &= ~( 1 << PB2 ) -> PB2 Input
Lies gefälligst entweder Dein C++-Buch oder den schon mehrfach erwähnten
Artikel zum Thema Bitmanipulation! Bei Deinem derzeitigen Wissensstand
macht es überhaupt keinen Sinn, Dir noch irgendetwas über Programmieren
oder Microcontroller zu erklären.
Georg G. schrieb:> Die Bitpositionen mit "1" werden Ausgang, die mit "0" werden Eingang.
Falls die Registerbezeichnung DDR der Namensgebung von Atmel folgt,
stimmt das (z.B. ATmega..). Bei den PICs ist es genau umgekehrt. Eine
"1" im Datenrichtungsregister schaltet den Pin als Input, eine "0" als
Output.
Michael schrieb:> Georg G. schrieb:>> Die Bitpositionen mit "1" werden Ausgang, die mit "0" werden Eingang.>> Falls die Registerbezeichnung DDR der Namensgebung von Atmel folgt,> stimmt das (z.B. ATmega..). Bei den PICs ist es genau umgekehrt. Eine> "1" im Datenrichtungsregister schaltet den Pin als Input, eine "0" als> Output.
Schön. Aber verwirr ihn nicht noch mehr. Er hat einen Atmega8. Der ist
allerdings gerade im A...
mfg.
Martin, machst du jetzt zu jedem Einzelschritt einen Thread auf?
RTFM (read the f***ing manual)
Langsam nervst du wirklich.
Arbeite das Tutorial durch und lies den verdammten Scheiß auch, den die
Leute dir posten und verlinken!
Ehrlich... was willst du bei Jugend Forscht???
Martin Fischer schrieb:> Ja, aber dort ist es als 0 #define'd, int ist es aber nicht?
Ja, das ist int. Aber das interessiert genauso wenig wie wenn du beim
Bäcker 5 € bezahlen sollst. Da ist es dir doch auch egal, ob das int,
char, long, double oder katholisch ist.
mfg.
Gerd schrieb:> Martin, machst du jetzt zu jedem Einzelschritt einen Thread auf?>> Ehrlich... was willst du bei Jugend Forscht???
'Jugend nervt' gewinnt er sofort.
Martin,
ich will dich mal was fragen:
Du liest nicht die vorgeschlagenen Artikel, auch keine Bücher, hast
sogar Angst deine Adresse per PN zu verschicken um ein oder mehrere
Geschenke zu bekommen (hatte da sogar vor dir den mySmartUSB light
dabei zu packen), nimmst absolut keine. Rat an, außer er liegt dir.
Also, was willst du hier?
Martin Fischer schrieb:> Sorry dass ich nerve, ich versuche nur zu lernen, habe es jetzt> aber> geschafft, danke, bb
xD ich habe eher das Gefühl du würdest dich wehren etwas zu lernen
Martin Fischer schrieb:> Von welchem Datentyp ist PB0 ? es ist kein Int, kein Char, ...?Martin Fischer schrieb:> Ja, aber dort ist es als 0 #define'd, int ist es aber nicht?
#define hat nichts mit Datentypen und Programmiersprache zu tun. Damit
werden nur Textstücke für Textersetzungen im Präprozessor gesteuert.