Forum: Mikrocontroller und Digitale Elektronik programm für pic16f84 auf 16f88 umstellen


von gregor grödner (Gast)


Angehängte Dateien:

Lesenswert?

hi

bräuchte eine hilfe für das umstellen des assembler quellcodes für eine
propeller uhr, ich weiss das der 16f88 mehr funktionen hat , und ist 
nicht wirklich kompatibel, ich weiss dass:
- pic16f84.inc auf 16f88.inc ändern
- cblock von 0x0c hex auf 0x20 hex ändern
- lvp disable bei der konfigurazion
- ausgänge auf digital umstellen muss mit clr ansel:

   bcf   STATUS, RP1
   bsf   STATUS, RP0  ; Bank 1

   clrf  ANSEL        ; alles digital I/O
   movlw b'00000111'
   movwf CMCON        ; Comparators off

   bcf   STATUS, RP0  ; Bank 0

   clrf  PORTA        ; Ports initialisieren
   clrf  PORTB

aber ich weiss nicht wo ich die befehle setzten soll?!anfang, oder bei 
den interuptsrutine?! kann mir einer ein typ geben oder noch netter mir 
den quellcode ändern?!

von Ottmar K. (wil1)


Lesenswert?

Nun mal keine Panik...
Schau Dir doch mal das Datenblatt des 16F88 an. Dort gibt es alles was 
Du wissen musst um vom 16F84 zum 16F88 umzumoppeln.

z.B. PORTA:
   BANKSEL PORTA ; select bank of PORTA
   CLRF PORTA    ; Initialize PORTA by clearing output data latches
   BANKSEL ANSEL ; Select Bank of ANSEL
   MOVLW 0x00    ; Configure all pins
   MOVWF ANSEL   ; as digital inputs
   MOVLW 0xFF    ; Value used to initialize data direction
   MOVWF TRISA   ; Set RA<7:0> as inputs

   ;Prozessor festlegen, includefile

   list     p=16F88;  16C84
   radix   hex
   include p16f88.inc";  "p16c84.inc"

;Deine Config-words findest Du bei MPLAB8.92 im Menü "Configure"
   __CONFIG XT_OSC & _CP_OFF & _MCLRE_ON & _WDTE_OFF & _LVP_OFF
; weitere CONFIG-words findest Du auch im INC-File

Die restlichen Problemchen wie
   movlw 0x00
   tris PORTB   ;Use of this instruction is not recommended.
   Werden z.B. mit "movwf TRISB" behoben

So grundverschieden sind die beiden PICs ja nun auch nicht. Lass doch 
einfach den Code in MPLAB als Simulation laufen und mach Dich dann an 
das beseitigen eventueller Fehlermeldungen.

mfG Ottmar

von gregor grödner (Gast)


Lesenswert?

Hi

also muss ich bei port init den code ändern? Muss ich da auch den amsel 
register verändern?(im quellcode ist keins vorhanden)
Weil der f88 startet mit analoge eingänge?, ich kenn mir nicht mit 
assembler aus...

von Chris B. (dekatz)


Lesenswert?

Ja unbedingt!  (der 16F84 hat ja ausser einem Timer keine andere 
Hardware eingbaut - also war auch kein ANSEL etc. nötig).

von Ottmar K. (wil1)


Angehängte Dateien:

Lesenswert?

gregor grödner schrieb:
> also muss ich bei port init den code ändern? Muss ich da auch den amsel
> register verändern?(im quellcode ist keins vorhanden)
> Weil der f88 startet mit analoge eingänge?, ich kenn mir nicht mit
> assembler aus...

OK, wenn Du von Assembler und programmieren keine Ahnung hast, ist es 
schon schwierig.
Ich habe das File mclock8.asm mal mit MPLAB angeschaut und die Fehler 
und Messages korrigiert - siehe Anlage.

Allerdings habe ich keine Ahnung ob das File mit Deiner Hardware auch 
korrekt funktionieren wird. Notfalls musst Du Dich halt einarbeiten, 
denn diese Mühe wird Dir kaum jemand abnehmen wollen.

mfG Ottmar

von gregor grödner (Gast)


Lesenswert?

danke

ich werde am wochnende den pic brennen und bescheid sagen ob es funzt,
hab zwar in elektronik ahnung, aber software , compiliermässig hab ich 
noch viel zu lernen, wegen den quellcode zu deuten ist mir recht 
schwierig,und die kommentare helfen mir auch nicht weiter weil ich auch 
kein PaP (programmablaufplan) habe und ebenso fast keine erfahrungen in 
dieser sache, den 88´datenblatt zu lesen ist mir lang :-), naja 
vielleicht kann ich mal ein assemblerprogramm selber schreiben

auf jeden fall danke für deine hilfe
grüsse aus südtirol

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
Noch kein Account? Hier anmelden.