Werbung
Aha, so richtig all-in-one, respekt.
Nur ein Tip vom Veteranen: Versuch' möglichst genau vom Auftraggeber rauszukriegen, was das Gerät dann tun soll und was nicht.
Sonst hast du jedesmal, wenn du abgeben willst, das Theater mit
"Ah super, sehr hübsch, aber könnten sie nicht ............"
Und wegen diesem "aber" fängst du gleich wieder von vorne an.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Stimmt hast recht.
Mein Chef wollte neben der C++ Benutzeroberfläche, also das ich einen Text eingebe und über RS232 dann mim PIC verbinde noch was viel besseres, denke das kostet mich aber zu viel Zeit. Er wollte, dass ich eine Phoneboardmatrix so Programmiere, dass ich mit der Tastatur eine SMS shreiben kann, also richtig schön mit Zeit abfrage, wann wurde welche Taste in einerm Zeitraum gedrückt, dann ist es der und der Buchstabe, OK die auslese Routine habe ich und eigentlich ist es ja nur ein kopieren eine abfrage Schleife, mal schauen was ich da machen kann. Man schreibt sich.
Und zwar habe ich nun 2 Seiten in meinem MPLAB Also 2 ASM Codes
Jede Seite habe ich den ANfang deklariert, so wie es der Compiler wollte mit dem schönen "xxxx code". Nun möchte er die Übertragung trotz alledem nicht starten, sondern er möchte immer wieder Compilieren, hab mir gedacht, da unten steht.
Make: The target "C:\André Welker\M. Display\Programm\Latch\bewegt.o" is up to date.
Make: The target "C:\André Welker\M. Display\Programm\v1.0\ASCII_1.o" is up to date.
Skipping link step. The project contains no linker script.
BUILD FAILED: Thu Feb 17 10:54:53 2005
Kann es nun sein, dass ich, wenn ich mehrer Seiten habe eine Linker Script datei erzeugen muss, wenn ja wie und was steht in Ihr, bin mom am suchen, finde jedoch nichts.
Help->Topics->MPLAB Linker
da mußt du dich durchbeissen, um ein Linkerscript zu erzeugen.
mfg
also hier ein kleiner Code ausschnitt hoffe weist warum Fehler
Im vy Reg steht H'01'
nun möchte ich es rechts verschieben
rrf vy, 1
nop
bcf STATUS, C
wann shiftet er die 01 auf 80 weiter ????
Er stellt sich auf 00 Carry gesetzt aber er schiebt sie nicht sofort weiter klar ich lösche es dann und vy ist auf 0 und ich bin auf 00 für immer gefangen. Wie bekomme ich es hin, dass er trotz alledem von 01 auf 80 also die 1 um 1 nach rechts verschiebt.
um kein bit im carry zu verlieren, sind zwei befehle nötig
[/code]Code:rlf vy, w ; vy wird nicht verändert, aber bit 0 geht ins Carry rlf vy, f ; jetzt geht bit 0 direkt nach bit 7
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
wer hat dir eigentlich erlaubt nen Teil aus meinem Programmcode zu veröffentlichen??? Du weist das du unterschrieben hast keine Firmendaten zu veröffentlichen?? [-XI2C_Listen_routinen code
I2C_liste_lesen_datensatz
btfsc PCdata
goto PCdatenlesen
movlw EE_pos
movwf DATA_EE_ADDR
...
Ach übrigens diese Sache:
Da gibts ein schönes Buch von Microchip. Nennt sich "MPASM USER'S GUIDE with MPLINK and MPLIB" müsste ein Arbeitskollege von dir haben!!"res 1" heißt mal nur, daß data_read_1 1 Byte lang sein soll.
(REServe 1 Byte)
"udataXXX" sind grundsätzlich daten-Sections mit ein paar Variationen.
Im Gegensatz zu "idata" pfeift sich kein Schwein drum, was da am Anfang drinsteht, das muß du selbst machen (auf NUL setzen z.b). Deswegen haut er dir Dinge wie "DB" etc. auch um die Ohren.
"udata" ist sozusagen das Normale, der Compiler weiß, daß er auf die bankselection aufpassen muß
"udata_acs" sind daten in dem speziellen "Access"-Bereich(nur f. PIC18...)
"udata_shr" sind daten im dem RAM, wo die Bankselection keine Rolle spielt, weil eh alle Banken auf den selben bereich hingreifen.
"udata_ovr" nimmt man, wenn man das GLEICHE Speicherbereich VERSCHIEDEN definieren will.
![]()
Lesezeichen