guten tag, ich möchte 10101010 mit 1 stop und start bit in einem C code schreiben und bei einem ausgang einer attiny 24 mittels Osziloskop darstellen. kann jemand mir einem tipps geben?? vielen dank
1 | #include <avr/io.h> |
2 | |
3 | int main(){ |
4 | unsigned char var=0xAA, mask; |
5 | |
6 | DDRB |= (1<<PB0); |
7 | |
8 | mask = 0x80; |
9 | while(mask){ |
10 | if(mask & var) |
11 | PORTB |= (1<<PB0); |
12 | else
|
13 | PORTB &= ~(1<<PB); |
14 | mask >>= 1; |
15 | }
|
16 | PORTB &= ~(1<<PB0); |
17 | }
|
so in etwa.
Willst du uns verarschen? --> Deutsch lernen --> Artikel Netiquette lesen und beachten --> C-Buch lesen und verstehen --> SUCHMASCHINE benutzen und recherchieren (Stichwort Datenblatt) Falls dann noch etwas unklar ist: --> Frage unter Beachtung der in Netiquette geschilderten Regeln stellen. Schließen bitte, ein gewisses Niveau sollte man versuchen im Forum zu erhalten.
Ja, du brauchst entweder ein Speicheroszilloskop oder musst die Folge endlos ausgeben.
Timmo H. schrieb: >
1 | > #include <avr/io.h> |
2 | >
|
3 | > int main(){ |
4 | > unsigned char var=0xAA, mask; |
5 | >
|
6 | > DDRB |= (1<<PB0); |
7 | >
|
8 | > mask = 0x80; |
9 | > while(mask){ |
10 | > if(mask & var) |
11 | > PORTB |= (1<<PB0); |
12 | > else |
13 | > PORTB &= ~(1<<PB); |
14 | > mask >>= 1; |
15 | > } |
16 | > PORTB &= ~(1<<PB0); |
17 | > } |
18 | >
|
> so in etwa. Und wieder hat der TO es geschafft seine Hausaufgaben vom Forum erledigen zu lassen. :-( Ich vergaß: Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?" SPERREN bitte! Es kann nicht sein dass auf solch hingeschi+++ene Anfragen sinnvolle Antworten kommen! Ist doch kein Wunder das dieses Phänomenen immer schlimmer wird.
ggast schrieb: estmal vielen danke an allen, > Willst du uns verarschen? meinst du dich und nicht euch. warum sollte ich es machen?? > > --> Deutsch lernen ich kann schon deutsch > --> Artikel Netiquette lesen und beachten > --> C-Buch lesen und verstehen > --> SUCHMASCHINE benutzen und recherchieren (Stichwort Datenblatt) > > Falls dann noch etwas unklar ist: > --> Frage unter Beachtung der in Netiquette geschilderten Regeln > stellen. > > Schließen bitte, ein gewisses Niveau sollte man versuchen im Forum zu > erhalten. ich weiss es nicht wie ich dir antworten soll. aber danke troztdem
Ja. 1. Schlage das AVR Manual auf 2. Suche den UART 3. Beschreibe die Register mit sinnvollen Config-Werten, z.B. für 9600 8N1 4. Beschreibe das Daten-Senderegister mit 0xaa 5. klemme dein Oszilloskop an den UART Pin des AVR an 6. Stelle das Oszi richtig ein (Trigger etc). 7. Bestaune das Bild am Oszi
ggast schrieb: > > Und wieder hat der TO es geschafft seine Hausaufgaben vom Forum > erledigen zu lassen. :-( :D, ja so bin ich. Hab gedacht, dass ich mir die 10s auch eben Zeit nehmen kann :P hab auch nen kleinen Fehler eingebaut...
Du kannst das Oszilloskop direkt an den Portpin anschließen. Meßbereicht 2 V/div und Zeitbereicht entsprechend deiner Bitdauer. Triggern kannst du am besten auf die erste Flanke vom Startbit, Triggerschwelle ca. 2 V. Dann lassen sich die Signale gut auf dem Oszilloskop darstellen ;-)
vielen dank jungs, @ggast es hat nicht mit faul oder nicht zu tun, ich bin halt anfänger und ich gebe mir mühe zu verstehen und paar programm zu erweitern. es war für mich schwierig das zu machen, da meine kontroller kein UART hat und wo ich UART Softwaregesehen habe ich so angest davor :-) gekriegt. wie findest du meine deutsch jetzt??
Ferdinand Gladz schrieb: > und wo ich UART Softwaregesehen habe ich so angest davor :-) > gekriegt. > > wie findest du meine deutsch jetzt?? Preisverdächtig.
Ob gutes Deutsch oder nicht, spielt hier keine Rolle. Die Anfrage ist und bleibt strunzdumm und strotzt vor Faulheit. Die wäre auch nicht intelligenter oder sinnvoller in der Muttersprache gestellt gewesen. AVR-GCC-Tutorial/Der UART http://www.google.de/search?q=avr+software-uart
Michael H. schrieb: > Ob gutes Deutsch oder nicht, spielt hier keine Rolle. > Die Anfrage ist und bleibt strunzdumm und strotzt vor Faulheit. Die wäre > auch nicht intelligenter oder sinnvoller in der Muttersprache gestellt > gewesen. > > AVR-GCC-Tutorial/Der UART > http://www.google.de/search?q=avr+software-uart vielen dank
Hm, naja. Das habe ich vllt nicht grade verdient. Trotzdem gern geschehen, wenn es hilft.
ein habe ich nicht verstanden mask >>= 1; kann jemand mir erklären bitte??
a >>= 1 ist das gleiche wie: a = a>>1 a=001010; a>>=1; danach ist a 000101 Das sind absolute C-Grundlagen. Kauf dir am besten ein C-Buch und lies solche Sachen nach.
Paulo_rock schrieb im Beitrag #2132948: > bitte schnell > > muss das morgen abgebeen!! nein ich habe von Bit-Manipulationen gelesen ich will halt verstehen
Paulo_rock schrieb im Beitrag #2132960: > danke > > so bekoomme ich meine 1 absolut nicht ich bin anfänger und ich will einfach verstehen
Paulo_rock schrieb im Beitrag #2132967:
> warum nutzt du meeinen namen?
was soll ich dir sagen?? mach was du möchtest echt
>>= Paulo_rock the third schrieb im Beitrag #2132971: > Paulo_rock schrieb: >> warum nutzt du meeinen namen? > > mit ner Anmeldung kann das nicht passieren :) >>=Rechts schieben ich habe es verstanden siehst du?? ich bin nicht faul :-)
Paulo_rock schrieb im Beitrag #2132967:
> warum nutzt du meeinen namen?
Melde dich doch einfach an, und arbeite nicht als Gast.
Michael H. schrieb: > a >>= 1 ist das gleiche wie: a = a>>1 > > a=001010; > a>>=1; > > danach ist a 000101 > > Das sind absolute C-Grundlagen. Kauf dir am besten ein C-Buch und lies > solche Sachen nach. d.h wird eine stelle nach rechts verschoben wenn ich a>>2 werden 2 stellen nach rechts geschoben oder??