Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Phase 3 : Bordcomputer
#4
Schöne Vorarbeit hast Du da geleistet.

Aus Erfahrung kann ich Dir sagen das du mit "Blut, Schweiߟ und Tränen" jede Programmiersprache erlernen kannst.
Aber unterschätze das nicht, das was Du dir da vorgenommen hast ist schon nicht ganz trivial. Da du stark an der Hardware proggen musst, musst du dich schon heftig mit Rechnerarchitektur auseinandersetzen. Im letzten Semester habe ich den Schein "Rechnerarchitektur" nach 8 Vorlesungen geknickt. War mir zu heftig für dieses mal... Smile Hatte noch 11 andere Scheine zu schreiben o.O

Hier ein paar Beispiele wie es aussehen könnte in Assembler.

Als Beispiel sei mal etwas ganz einfaches gegeben. In Java kann ich in einer einzigen Zeile dies hier sagen:

int k, j, i;
k=i+j;

Im Assembler sieht das ganze schonmal so aus...
0x0 0x9010 Lds R1, 0x0000
0x2 0x0000
0x4 0x9020 Lds R2, 0x0004
0x6 0x0004
0x8 0x0C12 ADD R1, R2
0xA 0x9210 STS R1, 0x0008
0xC 0x0008
...
0x30 0x007
0x32 0x1c12 ADC R1,R2
0x34 0x9210 STS R1, 0xB
0x36 0x000B

Du siehst direkt am AVR ist das ganze nur in Hexadezimal zahlen zu gewährleisten.

Ein weiteres Beispiel mit einigen Erklärungen:
1. Erst laden mittels LOAD
LDS R1, 300 //R1 = m[300]direkt mit Adresse
LDI R27, 1 // R27=1, "Immediate" den Wert
LDI R26,5 //das ergibt zusammen x=0x0105=261

2. Rechnen
ADD R2,R1 //R2= R2 +R1, C=(r1+r2)/256, C=Übertr.
ADC R3,R4 //R3=R3+R4+C
SUB Rd, Rr // Rd- =Rr, destination, register
SBC Rd, Rr //Rd=Rd -Rr-C
SUBI R16,0x33 //R16=R16-51
DEC Rd //Rd--, wozu? SUBI Rd,1 setzt C-Flag, DEC nicht

3. Schreiben
ST R2, X // wie LD, auch STS (direkt)

Assembler ist also eine sehr laaaaangwierige Sprache, dafür aber unwahrscheinlich genau da hier Bitweise operiert wird. Bascom dagegen... naja Rolleyes

Das Problem das ich bei Bascom sehe ist das es auf der Grundlage von Basic basiert. Basic ist (zumindest für mich) eine sehr unlogische Sprache im Vergleich zu C. Dazu kommt wie ich gerade lese das der Compiler (also das was den Code in Assembler umwandelt) nicht wirklich sauber arbeitet und häufiger mal Schrott produziert. Mein Favorit ist C. Da C sehr sauber geschrieben werden kann. Das da auch komplizierte Dinge wie Pointer sind können wir glaube ich getrost beiseite lassen, so kompliziert wird die AVR Programmierung in diesem Falle nicht.

Ich habe ein sehr geiles Tuturial für C auf AVR gefunden.

C auf AVR Tut

An den anstehenden Programmieraufgaben möchte ich mich auf jeden Fall mit beteiligen. Ist ne prima Übung Smile

Greetz
Marrador
Zitieren


Nachrichten in diesem Thema
Phase 3 : Bordcomputer - von saxonfahrer - 19.11.2008, 23:23
[Kein Betreff] - von saxonfahrer - 19.11.2008, 23:38
[Kein Betreff] - von saxonfahrer - 19.11.2008, 23:56
[Kein Betreff] - von Marrador - 20.11.2008, 12:55
[Kein Betreff] - von saxonfahrer - 20.11.2008, 13:55
[Kein Betreff] - von Marrador - 20.11.2008, 15:29
[Kein Betreff] - von saxonfahrer - 20.11.2008, 15:43
[Kein Betreff] - von Marrador - 21.11.2008, 13:38
[Kein Betreff] - von saxonfahrer - 21.11.2008, 17:27
[Kein Betreff] - von Steve-o - 21.11.2008, 22:55
[Kein Betreff] - von saxonfahrer - 21.11.2008, 23:51
[Kein Betreff] - von Noctunus - 26.02.2009, 02:46
[Kein Betreff] - von Steve-o - 26.02.2009, 03:36
[Kein Betreff] - von Fle>< - 26.02.2009, 15:27
[Kein Betreff] - von Steve-o - 26.02.2009, 16:09
[Kein Betreff] - von saxonfahrer - 26.02.2009, 17:07
[Kein Betreff] - von Fle>< - 26.02.2009, 18:02
[Kein Betreff] - von mike - 27.02.2009, 08:21
Re: Phase 3 : Bordcomputer - von Trejvic - 31.08.2010, 15:21

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste