mov r25, Mitteaus ;da r25 in Write EEPROM zum schreiben der Variable
28
;verwendet wird muss das Register kopiert werden
29
ldi ZH, 0 ;niederwertige Bit der EEPROM Adresse = 0
30
ldi ZL, 5 ;schreibe EEPROM an adresse 1
31
rcall Write_EEPROM ;schreibe Wert in EEPROM
32
pop r28
33
rcall wait1
34
;--------------------------------
es funktioniert aber nicht, ich habe es auch mit sbic SREG, 0 versucht
aber das haut uchn icht hin wie kann ich sonst das c bit abfragen ohne
dass ich mir jetzt den Befehl aus den 130 aufgelisteten raussuchen
muss`?
Conditional relative branch. Tests the Carry flag (C) and branches
relatively to PC if C is cleared
naja ich weiß jetzt halt nicht was PC ist, ich vermute jedoch das ist
eine Sprungmarke
Hi
>naja ich weiß jetzt halt nicht was PC ist, ich vermute jedoch das ist>eine Sprungmarke
PC ist der Program-Counter. D.h. die Adresse an der sich dein Programm
gerade befindet.
MfG Spess
>wie wäre es mit BRCC oder BRCS ...
Damit hat Reader recht, ich frage das Carry jedenfalls so ab,
und bei mir funktioniert es damit seit vielen Jahren.......
PC hat in diesem Falle nicht mit PC (der "Blechkiste") zu tun,
sondern ist der Programm-Counter!
(Gehört das zum µC Grundwissen??)
>BRCC - überspringe den nächsten Befehl, wenn Carry gelöscht>BRCS - springe, wenn Carry gesetzt
dh wenn ich nur schreibe
.
.
ADD ...
BRCC
.
.
.
dann überspringt er einfach den nächsten Befehl
und wenn ich sage
.
.
ADD...
BRCC Hallo
.
.
Hallo:
ret
dann heißt das, wenn Carry = 0 dann springe zu Hallo ansonsten mache
weiter, und durch das Ret passiert dann das selbe?
Du hast 'ne komplette Divisionsroutine in deinem(?) Quelltext, aber du
weisst nicht, was ein PC (Program Counter) ist, oder wie man das
Carrybit abfragt?
Solltest du dich nicht erstmal mit den Grundlagen beschäftigen, ehe du
mit diesem Halbwissen (oder eher Viertelwissen) an die Programmierung
machst?
Oder ist der Quelltext eventuell gar nicht von dir und du stocherst dort
nur rum? Darfst du das überhaupt? Hat dir der Autor das erlaubt?
Kopfschüttelnd,
Thomas
>BRCC/BRCS brauchen immer ein Label
ok also wenn ich BRCC Hallo sage dann springt er zu Hallo wenn C = 0,
aber was macht er wenn c = 1? überspringt er dann das "zum Label
springen" oder was macht er da, in der Hilfe kann ich das nicht wirklich
rauslesen
>Du hast 'ne komplette Divisionsroutine in deinem(?) Quelltext, aber du>weisst nicht, was ein PC (Program Counter) ist, oder wie man das>Carrybit abfragt?
natürlich weiß ich was ein Programm counter ist, jedoch bin ich nicht
draufgekommen, dass der in der Hilfe mit PC abgekürzt wird
>Solltest du dich nicht erstmal mit den Grundlagen beschäftigen, ehe du>mit diesem Halbwissen (oder eher Viertelwissen) an die Programmierung>machst?
Naja kommt drauf an was du unter Grundlagen verstehst, werd doch amal
abissal genauer bitte, ansosnten denke ich, dass ich mich schon mit den
Grundlagen auskenne wenn wir jetzt da seklbe meinen
>Oder ist der Quelltext eventuell gar nicht von dir und du stocherst dort>nur rum? Darfst du das überhaupt? Hat dir der Autor das erlaubt?
das ist kompletter schwachsinn
lg andy
Wobei, ich sehe gerade, dass du mit dem Divisions-Unterprogramm ein Byte
durch 2 teilst. Das ist einfaches rechtsschieben! Dafür braucht man kein
Unterprogramm.
Der Quelltext könnte doch von dir sein ...
Immer noch kopfschüttelnd,
Thomas
Hi
>Naja kommt drauf an was du unter Grundlagen verstehst, werd doch amal>abissal genauer bitte, ansosnten denke ich, dass ich mich schon mit den>Grundlagen auskenne wenn wir jetzt da seklbe meinen
Bedingte Sprünge gehören zu den Absoluten Grundlagen. Ebenso z.B. der
Unterschied zwischen einer Adresse und dem, was doert steht. Und da du
nicht einmal das kennst hat Thomas Recht.
MfG Spess
@Thomas (Gast)
solche Kommentare zeichnen das Forum in letzter Zeit immer häufiger aus.
Wie hast du denn angefangen ? Hast du nicht auch in fremden Codes
herumgestochert
um sie zu verstehen ?
Kopf schüttel ...
>Bedingte Sprünge gehören zu den Absoluten Grundlagen. Ebenso z.B. der>Unterschied zwischen einer Adresse und dem, was doert steht. Und da du>nicht einmal das kennst hat Thomas Recht.
nun ja bedingte Sprünge is wieder so eine Sache, ich weis wie man die in
c, basic, python, java schreibt, aber ich habe auch nicht gesagt das ich
die Programmierung in assembler beherrsche, denn die Grundlagen sowie
Program Counter gehören eher mehr zu Hardware würde ich sagen.
Ich lerne hier eine auf "unterem Niveau" Programmiersprache und fände es
echt gut wenn ich auch Hilfe bekommen würde. Nicht das ich jetzt sage,
dass mir hier nicht genug geholfen wird, im gegenteil, aber wenn ich zb
sowas sehe
>Wobei, ich sehe gerade, dass du mit dem Divisions-Unterprogramm ein Byte>durch 2 teilst. Das ist einfaches rechtsschieben! Dafür braucht man kein>Unterprogramm.>Der Quelltext könnte doch von dir sein ...>Immer noch kopfschüttelnd,
dann frag ich mich halt wieder was son mist soll
also nochmal: Alles was ich hier im FOrum poste bzw gepostet habe, habe
ich entwickelt, ausser vielleicht kleine Unterprogramme sowie bsplsweise
die Division, die habe ich aus einem Toturial und habe sie so umgeändert
wie ich wollte, ich habe es natürlich auch verstanden
lg andy
@Reader:
sicher habe ich mir auch die Codes von anderen angesehen, um daraus zu
lernen. Jedoch habe ich nicht deren Quelltexte genommen, sie geändert
und dann neu assembliert (nicht kopiliert, das ist was anderes).
Solche absoluten Anfängerfragen kann aber jedes Buch, oder sogar das
AVR-Instruction Manual beantworten. Und dazu gehört dann auch das
Durchlesen von 130 Befehlen, zu dem Andy11 wohl schon kein Bock hat. Das
gehört nun mal aber dazu.
Und auch das Schreiben von Programmen mit 5-10 Befehlen gehört dazu. Nur
allein um zu sehen, was die Befehle machen. SELBST AUSPROBIEREN!!! Das
bringt den meisten Lerneffekt! AVR-Studio ist dein Freund.
Thomas
Thomas schrieb:> Solche absoluten Anfängerfragen kann aber jedes Buch, oder sogar das> AVR-Instruction Manual beantworten. Und dazu gehört dann auch das> Durchlesen von 130 Befehlen, zu dem Andy11 wohl schon kein Bock hat. Das> gehört nun mal aber dazu.>> Und auch das Schreiben von Programmen mit 5-10 Befehlen gehört dazu. Nur> allein um zu sehen, was die Befehle machen. SELBST AUSPROBIEREN!!! Das> bringt den meisten Lerneffekt! AVR-Studio ist dein Freund.
damit hast du absolut recht thomas, ich greif halt eher auf ein forum um
sicher zu gehen auch wenn ich einen simulator habe aus irgend einem
Grund.
kann ja sein, dass es mir dann mehr spaß macht.
Andy11 schrieb:> ich greif halt eher auf ein forum um> sicher zu gehen auch wenn ich einen simulator habe
Ja, du lässt lieber andere für dich denken, als mal selber das Gehirn
anzuwerfen. Wenn man mit so einer Einstellung versucht zu programmieren,
muss man sich über blöde Kommentare im Forum nicht wundern.
Ach ja , die schöne alte Zeit, Bildschirmtext und Datex-P,viele Bücher
die man Abends im Schein der Strassenlaterne lesen konnte.
Man musste noch selber denken und alles zu Papier bringen denn Drucker
und Computer waren sehr sehr teuer......
Heute gibts das Wissen kostenlos und meist UMSONST im Netz und man
wundert sich das bei den Pisa Studien nur noch Müll rauskommt und die
Kids nicht mehr Ausbildungsfähig sind nach ihrem Schulabschluss..
Mein erstes Assembler Programm für den U880 (Z80) habe ich noch absolut
zu Fuss entwickelt. Da ich keinerlei Computer hatte, aber unbedingt
dieses Lauflicht bauen wollte habe ich mir das Programm erst einmal auf
Papier geschriebn und dann dank der Tabellen in Kieser/Meder in den Hex
Code übersetzt. Ein freundlicher Kollege aus der F/E Abteilung hat mir
dann den Hex-Code auf den EPROM gebrannt. Und dann ging es ans testen im
Einzelschritt.....
Naja da lernt man dann auch was ein PC und dessen M1-Zyklus ist ;-)
Gruß
Hi
>Mein erstes Assembler Programm für den U880 (Z80) habe ich noch absolut>zu Fuss entwickelt. Da ich keinerlei Computer hatte, aber unbedingt>dieses Lauflicht bauen wollte habe ich mir das Programm erst einmal auf>Papier geschriebn und dann dank der Tabellen in Kieser/Meder in den Hex>Code übersetzt.
Kommt mir sehr bekannt vor.
MfG Spess
Ok, ich bin nicht ganz so alt, wie ihr. Ich habe mein erstes
AVR-Programm auf dem Laptop mit AVR Studio geschrieben. ;)
Aber, lieber Andy11, das erste was ich vorher gemacht hab, war mir ein
Buch darüber zu kaufen, das Datenblatt runterzuladen und die
Befehlsübersicht auszudrucken. Und nicht, in ein Forum zu rennen, und
mir alles vorkauen zu lassen, weil ich kein Bock hatte mir das Wissen
selber anzueignen.
Kieser/Meder sagt mir zwar nichts, aber auch ich begann mit Büchern. Und
zwar welchen von Rodnay Zaks ("Programming the 6502" und "Programming
the Z80"). Die habe ich noch heute im Regal stehen und gebe sie auf
keinen Fall mehr her. Auch wenn sie inzwischen nur noch nostalgischen
Wert haben ...
Die Bücher begannen ganz vorne mit dem Rechnen im Zweiersystem. Also
wirklich vorne ... :-)
Thomas
Hi
>Kieser/Meder sagt mir zwar nichts, aber auch ich begann mit Büchern.
Kieser/Meder Mikroprozessortechnik war in der DDR praktisch die Bibel
für U880/Z80 Assemblerprogrammierung.
MfG Spess