Hat der Mega8 bitadressierbare Register im RAM wie ein 8051?
Nein, hat er nicht. Den Speicherbereich des 8051, der einzelne Bits in den SFRs addressiert, kennt man bei den Megas nicht.
Ich weiß nicht, wie das beim 8051 aussieht, aber die AVRs können nicht auf einzelne Bits im RAM zugreifen. Zugriff geht nur byteweise.
Wenn man nicht päpstlicher ist als der Papst, dann kann man die Frage bejahen. 1. Register liegen auch bei AVR im RAM 2. Register sind auch bei AVR bitweise anzusprechen (sbr, cbr, sbrc, sbrs) Da dieses Forum aber überwiegend aus Päpsten und Haarspaltern besteht, jetzt Ring frei...
Gast wrote: > 2. Register sind auch bei AVR bitweise anzusprechen > (sbr, cbr, sbrc, sbrs) > > Da dieses Forum aber überwiegend aus Päpsten und > Haarspaltern besteht, jetzt Ring frei... Das hat nichts mit Haarspalterei zu tun. Oben genannte Befehle sind Funktionen zur Bitmanipulation und haben nichts mit dem Bit-Adressbereich des 8051 zu tun.
..... aber päpste und solche die sich dafür halten .... geht nicht gibt es nicht! spätestens der CVAVR beherscht das aber
1 | PORTB.0=0 //löscht bit 0 an PORTB |
2 | PORTB.3=1 //setzt bit 3 an PORTB |
auch kann CVAVR Bitvariablen vorhalten und weist diese auch am ende des Compilierprozesses aus.
Winfried Jaeckel wrote:
>
1 | > PORTB.0=0 //löscht bit 0 an PORTB |
2 | > PORTB.3=1 //setzt bit 3 an PORTB |
3 | >
|
> > auch kann CVAVR Bitvariablen vorhalten und weist diese auch am ende des > Compilierprozesses aus. Das ist aber Compilerspezifisch und nicht von der Archtektur gegeben wie beim 8051.
Winfried Jaeckel wrote: > geht nicht gibt es nicht! Das ist keine Frage. Natürlich haben die Megas ihre eigene Methoden um auf Maschinenebene einzelne Bits zu manipulieren oder abzufragen. Dennoch bleibt die Frage des OP "Hat der Mega8 bitadressierbare Register im RAM wie ein 8051?" ganz klar zu verneinen. Denn die hat er definitiv nicht!
@ Niels Hüsken (monarch35) >Dennoch bleibt die Frage des OP "Hat der Mega8 bitadressierbare Register >im RAM wie ein 8051?" ganz klar zu verneinen. Denn die hat er definitiv >nicht! Ihr irrt, eure Eminenz. Der AVR HAT bitadressierbare Register, nämlich die SFRs 0..31, auf welche die Befehle sbi, cbi, sbis, sbic anwendbar sind. Bitmanipulation Speicher: Register MFG Falk
@ winne (Gast)
>ja ja des kaisers bart
Warens nicht seine neuen Kleider? ;-)
MFG
Falk
Ja, aber.... humpf Nagut, hab mich geirrt. Haupt auf meine Asche...
Falk Brunner wrote: > @ Niels Hüsken (monarch35) > >>Dennoch bleibt die Frage des OP "Hat der Mega8 bitadressierbare Register >>im RAM wie ein 8051?" ganz klar zu verneinen. Denn die hat er definitiv >>nicht! > > Ihr irrt, eure Eminenz. Der AVR HAT bitadressierbare Register, nämlich > die SFRs 0..31, auf welche die Befehle sbi, cbi, sbis, sbic anwendbar > sind. > > Bitmanipulation > Speicher: Register > > MFG > Falk Nur kann ich sie nicht für meine Zwecke nutzen. Das sind ja alles schon vordefinierte Bits mit bestimmten Funktionen.
Aber rein theoretisch sind die Bits doch nicht adressierbar. Also ich meine, sie haben keine Adresse. Somit kann der AVR nicht bit-adressieren ;) PS: Ich kann da überhaupt nichts drüber sagen, weil ich weder den 8051 kenne, noch die Eigenschaften von Bitadressierbarkeit.
Ist zwar nicht genau das, wonach du suchst, aber vielleicht willst du dies erreichen: Beitrag "sbit macro für avr-gcc" Gruß und guten Rutsch Volker
Ich verstehe nicht, wieso auf die einigermaßen eindeutig gestellte Frage wieder mal so eine Klugsch***er-Diskussion losgehen muss. Die Frage von Maxim lässt sich ziemlich eindeutig beantworten: Die AVRs lassen den Zugriff auf einzelne Bits nur in bestimmten SFRs zu. Einen bitadressierbaren Bereich im General Purpose SRAM wie bei den 8051ern gibt es im AVR nicht.
das war mir doch sooooooooooooooooooooooooooooooooooooo klar
> Nur kann ich sie nicht für meine Zwecke nutzen. Kommt drauf an. Manche AVRs haben tatsächlich ein paar SFRs, die nur dazu da sind, um für eigene Zwecke benutzt zu werden. Beim Atmega48 gibt's z.B. GPIOR0-2 dafür.
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.