Nur mal kurz ne Frage Controller 8 Bit Datenbuss ist es da ohne Probleme möglich rechenoperationen wie zb x=277+1604 auszuführen oder brauche ich da schon einen 16 Bitz Controller? Unabhängig davon was sind gute Alternativen zum Atmega8 bzw. Atmega16 als 16Bit Version ?
Die Datenbusbreite ist nicht ausschlaggebend. Entscheidender ist die Größe der von der CPU bzw. der darin enthaltenen ALU verarbeitbaren Daten. Eine reine 8-Bit-CPU muss also für eine Addition wie die angegebene mehrere Schritte durchführen (sprich: Du musst dafür ein Programm schreiben), während eine CPU mit "breiterer" ALU etc. das mit einer Maschineninstruktion erledigen kann. Die Datenbusbreite kommt hier nur als Geschwindigkeitsfaktor ins Spiel; auf einem 8-Bit-Datenbus benötigt die Übertragung von 16-Bit-Werten logischerweise doppelt so lange wie auf einem 16-Bit-Datenbus. Es gab sogar 32-Bit-Prozessoren mit 8-Bit-Datenbus (68008). Wobei sich hier die Geister spalten, ob 68000/68008 als 32-Bit-Prozessoren zu bezeichnen sind; die Register und verarbeiteten Operanden sind jedenfalls 32 Bit breit, auch wenn's die (für den Programmierer eh nicht direkt wahrnehmbare) ALU nicht ist. Natürlich lassen sich auch mit 8-Bit-CPUs wie der AVR-Reihe 32-Bit-Berechnungen und sogar Floating-Point-Berechnungen durchführen, sie benötigen nur mehr Maschineninstruktionen als eine 16- oder 32-Bit-CPU dafür benötigen würde. Man stelle sich vor, daß das nicht möglich wäre; dann hätten all' die Homecomputer aus den 80ern nicht rechnen können ... das waren nämlich vor VC Amiga und ST fast alles reine 8-Bit-Rechner. Eine 16-Bit-Alternative zu den AVRs ist die MSP430-Familie von TI; eine recht reizvolle 32-Bit-Alternative sind die verschiedenen ARMe von den verschiedensten Herstellern (Atmel mit den AT91SAM7Sxxx, Philips mit den LPC2xxx und etliche andere).
Ein AVR kann das rechnen. Man nimmt das Carry-Flag als Übertrag. add Wert1_L,Wert2_L ;Beide Low-Bytes addieren, Übertrag ins Carry adc Wert1_H,Wert2_H ;Beide High-Bytes und Übertrag addieren, ;neuen Übertrag ins Carry ;und so weiter, wenn die Zahlen mehrere Bytes haben... Mit 16-Bit-MCs kenne ich mich nicht aus, sorry... ...
@Unbekannter: > Kennst Du einen, kennst Du alle... Im Prinzip ja, aber nur, wenn man sich auch damit beschäftigt. Und ich beschäftige mich damit nunmal nicht. Die Architektur des (Kerns des) AVRs habe ich so halbwegs im Kopf, von den 16-Bittern weiß ich nur, dass es sie gibt. Und da ich dieses "Spezialwissen" nicht habe, werde ich darüber keine (Vergleichs-) Diskussion mitmachen. Dann stehe ich lieber dazu, dass ich davon "keine Ahnung" habe... ;-) Bit- & Bytebruch... ...HanneS...
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.