-
Hi,
scheinen sich ja viele gern zu erinnern..
Die Programmierung läuft bei uns in etwa so ab wie von Pedder beschrieben.
@oberallgeier
Der Z80 ist bewusst gewählt, weil man den u.a. im Einzelschrittbetrieb betreiben kann. Bei uns solln wir diese Teile mehr oder weniger von Grund auf kapieren: Deshalb haben wir letztes Jahr Halb- bzw. Volladdierer, Register, Steuertore, Speicher (Flipflops) und ähnliches durchgenommen (am Ende stand ein Einfachst-Prozessor nur aus Relais). Nächstes Jahr gehts dann um einen Fußballroboter in Basic.
Diese Frage war eigentlich eher so gemeint, dass ich es lustig gefunden hätte auch mal mit nem AVR zahlen zwischen Registern hin- und herzuschieben! Wenn ich wirklich vorhabe, ein großeres Programm zu schreiben, dann mache ich das in C, welches ich, würde ich mal so behaupten, mittlerweile gut beherrsche.
Ok, da man also an den Programmspeicher nicht (oder nur schwer) drankommt, müsste ich also das hex-File, welches ich mit z.B. PonyProg einlese und progge, selbst schreiben. In den Datenblättern der AVRs sind die Mnemonics zwar schön aufgelistet, aber, wie schon von oberallgeier angemerkt, leider nicht der hex bzw. binär oder halt generell Zahlencode!
Das war im ersten Post nicht ganz zu merken, ich denke ihr wisst jetzt um was es mir geht!
-
Die Zahlenwerte zu den opcodes bekommt man z.B. aus der Onlinehilfe on AVRStudio. Ist da sogar noch binär, also noch etwas Hardware näher.
Wenn man das ganz alte Feeling wieder haben will, müßte man eine Art Bootloader schreiben, der die Daten von ein Paar Schaltern einliest, oder von Lochkarten (ggf. 1 byte zur Zeit) einliest. ... Das wäre ja mal was: ein µC mit Lochkarten, oder Lochstreifen.
-
wär mal geil, nei Hollerithmaschine am AVR um das Programm zu flashen ...
Bild hier
Aber nur wenns die Dame gratis dazu gibt
-
Hallo!
@ Jakob2
Hardwarenäheste Programmiersprache ist Assembler (Maschinensprache). Von der Hochsprachen ist das C, die du schon kennst, und dann kommen die anderen... :)
Wenn schnelstmögliches Ausführen benötigt wird, setzt man in Hochsprachen entsprechende Assemblerfragmente als Funktionen ein.
MfG
-
Ich hab mal wegen eines Dis-Assemblers den AVR-Code durchanalysiert.
Vielleicht findest du da ein paar Info, die du brauchen kannst
http://www.rn-wissen.de/index.php/At..._Mega32#Aufbau
Ich hab auch noch irgendwo alle anderen Instructions aufgeschlüsselt, sag es, wenn es dich interessiert
-
Es wurde zwar schon mal erwähnt aber hier nochmal explizit: http://www.atmel.com/dyn/resources/p...ts/doc0856.pdf Das komplette Instruction Set der 8-bit AVR-Mikrocontroller (155 Seiten wo genau aufgeschlüsselt ist wie jeder Befehl aufgebaut ist und funktioniert. Leider gibt es die Opcodes nur binär aber das sollte jetzt nicht so das Problem sein wenn du schon unbedingt Bytes und Bits sehen willst.
-
Ok,
jetzt hätt ich schonmal die Befehle. Allerdings hab ich in nächster Zeit keine Zeit dafür... =;
Vielleicht komm ich aber zu einer vereinfachten Version, die zumindest etwas das Feeling vermittelt :cheesy: :
Ich lasse den AVR ganz normal die Löcher einlesen (vllt. CNY70) und simuliere die Befehle aber in C auf dem AVR. Als Programmspeicher könnt ich mir z.B. ein Array machen X*16bit oder vielleicht auch nur 8bit-Befehle. Oder ein externer EEPROM (habe 24C08 bei mir da)?
Variablen könnten als Register dienen.
So richtig richtig ist das dann natürlich nicht! Aber wesentlich einfacher zu realisieren.