Forum: Mikrocontroller und Digitale Elektronik Anfänger Frage zu PIC16F628A


von Martin M. (ats3788)


Lesenswert?

Hallo ich traue mich das gar nicht zu fragen.
Ich habe so ein PIC-READY 2 Board von Mikroelektronika
und versuche die kleinen Käfer (PIC16F628A, PIC16F84)  ohne Debug 
Möglichkeit zum fliegen zu bekommen.

Einfach nur LED an
1
    CLRF PORTB
2
    MOVLW 0x07;
3
    MOVF  CMCON
4
    BANKSEL TRISB
5
    MOVLW 0;
6
    MOVWF TRISB;
7
8
    BSF PORTB,6;
9
10
    BANKSEL TRISA
11
    CLRF TRISA
12
    BANKSEL PORTA
13
    BSF PORTA,0
Ich benutze MPLAB X 1.9 und PICKIT 3
Ich kann den Speicher auslesen, daß einzige was ich nicht testen
kann, ist die Frequenz vom Quarz, leider Ossi kaputt.

Wie kann ich die PICS ohne DEbug Möglichkeit testen ob
sie richtig funktionieren.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Wie wär's die LED blinken zu lassen.

von Peter (Gast)


Lesenswert?

Teo Derix schrieb:
> Wie wär's die LED blinken zu lassen.

Dazu muss man die LED auch anmachen und genau das versucht er hier zu 
machen. Lies gefälligst bevor du deinen Senf dazu geben musst. Wenn du 
es schon nicht lassen kannst.

> Einfach nur LED an    CLRF PORTB


Martin Michael schrieb:

> Einfach nur LED an    CLRF PORTB
>     MOVLW 0x07;
>     MOVF  CMCON
>     BANKSEL TRISB
>     MOVLW 0;
>     MOVWF TRISB;
>
>     BSF PORTB,6;
>
>     BANKSEL TRISA
>     CLRF TRISA
>     BANKSEL PORTA
>     BSF PORTA,0
> Ich benutze MPLAB X 1.9 und PICKIT 3

Könntest du mal bitte dein ganzes Programm (mit Main-Loop und und und) 
präsentieren? Wichtig wären v.A. auch das ConfigWord 
(Oszillatoreinstellungen, ...)

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Martin Michael schrieb:
> Hallo ich traue mich das gar nicht zu fragen.

Frag ruhig, es gibt nur wenig blöde Fragen, dafür aber viele blöde 
Antworten.

Also mein Rat: gewöhne dir ein gewisses Maß an Formalismus an beim 
Schreiben deiner PIC-Quellen. Ich benutze schon seit mehr als 20 jahren 
diese kleinen PIC's und hab eigentlich noch NIE dafür nen Debugger 
benötigt.

Ich geb dir mal im Anhang ein kleines Beispiel zum Lesen. Der Sinn ist, 
daß du den dort geübten Formalismus mal siehst: Kommentar was, wie und 
wozu, dann die Beschreibung der Peripherie und Deklaration der 
entsprechenden Bits, dann Deklaration der benutzten RAM-Zellen, dann 
Konfiguration und bei Bedarf ID's und EEPROM, dann Programmspeicher. Und 
im Programmspeicher zuerst der blutige Anfang, dann die (hier leere) 
Interrupt-Routine, dann alles weitere.

Du brauchst nicht zu probieren, den Code unverändert mit dem MPLAB 
übersetzen zu wollen, das klappt nicht, weil MPLAB sowas wie SKIP, BIT 
usw. nicht versteht. Aber die Herangehensweise, also den prinzipiellen 
Aufbau der Quelle, kannst du beim Lesen verstehen.

W.S.

von Teo D. (teoderix)


Lesenswert?

Peter schrieb:
> Dazu muss man die LED auch anmachen und genau das versucht er hier zu
> machen. Lies gefälligst bevor du deinen Senf dazu geben musst. Wenn du
> es schon nicht lassen kannst.

Wo lies Du da, das Er das bereits Aufgebaut und ausprobiert hat. In 
seinem Text steht nur wie Er Sein Vorhaben Debuggen kann!
Daher, wahrscheinlich, auch nur der Codeschnippsel.
Fals Er was andres meint, sollte Er Sich deutlicher ausdrücken.(das 
ist ein Hinweis, kein Angriff!)

Hier noch mals zum Verständnis Seine eigentliche Frage und meine 
Antwort darauf:
Martin Michael schrieb:
> Wie kann ich die PICS ohne DEbug Möglichkeit testen ob
> sie richtig funktionieren.
(auch kein Oszi vorhanden)
Teo Derix schrieb:
> Wie wär's die LED blinken zu lassen.
Wo bei ich bei Seinen eingeschränkten Möglichkeiten und den Hinweis auf 
das nicht funzende Oszi, das "testen ob sie richtig funktionieren" als 
"läuft ER überhaupt" interpretiert habe.


PS: Auf persönliche Angriffe und Beleidigungen verzichte ich hier aus 
freien Stücken!

von Ottmar K. (wil1)


Lesenswert?

Hallo Martin,

Du hast fälschlicherweise versucht die Analog-Pins des PIC 16F628 PORTB 
anstatt PORTA auf digital umzuschalten! Das geht nicht! Schau mal im 
Datenblatt S.33 (Abschnit 5.1, excample 5-1)

Init:
;---PORTA          ;(Beispiel aus dem Datenblatt)
    CLRF PORTA     ;Initialize PORTA by setting output data latches
    MOVLW 0x07     ;Turn comparators off and
    MOVWF CMCON    ;enable pins for I/O ;functions
    BCF STATUS, RP1
    BSF STATUS, RP0;Select Bank1
    MOVLW 0x1F     ;Value used to initialize ;data direction
    MOVWF TRISA    ;Set RA<4:0> as inputs TRISA<5> always
                   ;read as ‘1’ ;TRISA<7:6> depend on oscillator mode
;---PORTB
    banksel PORTB  ;bank 0
    CLRF PORTB
    banksel TRISB  ;bank 1
    clrf TRISB     ;RB7:RB0 sind als Ausgänge konfiguriert
    banksel PORTB  ;zurück zu bank 0
    ;
Main:              ;blinkende LED an PORTB,RB6
    bsf  PORTB,RB6 ;LED einschalten
    CALL Wait      ;Aufruf Delay-Routine z.B. 1Sekunde
    bcf  PORTB,RB6 ;LED ausschalten
    CALL Wait      ;Aufruf Delay-Routine z.B. 1Sekunde
    GOTO Main      ;wiederholt den Job

Falls Dein Quarz nicht funktioniert, dann verwende doch den internen 
Oszillator des 16F628.
vgl.: Datenblatt S. 100 Abschnitt 14.2
vgl. REGISTER 4-6: PCON – POWER CONTROL REGISTER (ADDRESS: 8Eh)
     OSCF: INTOSC Oscillator Frequency bit
     1 = 4 MHz typical
     0 = 48 kHz typical

mfG Ottmar

von Martin M. (ats3788)


Lesenswert?

das ist nett von euch
ja es war nur ein codeschnipsel
ich benutze normal den pic16f887 mit dem
kenne ich mich ganz gut aus.

Ottmar K besonderen dank dir, daß ist
aber ein 628a der a typ hat ein anderes datenblatt
werde mir das morgen anschauen.

von Klaus (Gast)


Lesenswert?

Martin Michael schrieb:
> Ich benutze MPLAB X 1.9 und PICKIT 3

Seit wann kann man mit dem PICKIT 3 und MPLABX nicht debuggen?

MfG Klaus

von Ottmar K. (wil1)


Lesenswert?

Martin Michael schrieb:
> aber ein 628a der a typ hat ein anderes datenblatt

16F628 bzw. 16F628A unterscheiden sich meines Wissens nur in der 
maximalen von Microchip empfohlenen Oszillatorfrequenz mit "A" 4MHz ohne 
"A" 20MHz.

Klaus schrieb:
> Seit wann kann man mit dem PICKIT 3 und MPLABX nicht debuggen?

Kann man schon, aber nicht bei den 8-18pin-devices. Die benötigen 
nochmals ein spezielles Debugg-Vorsatz-IC

mfG Ottmar

von Teo (Gast)


Lesenswert?

Ottmar K. schrieb:
> empfohlenen Oszillatorfrequenz mit "A" 4MHz ohne
> "A" 20MHz.

Is das nich anders rum?

von Chris B. (dekatz)


Lesenswert?

Die 628A unterscheidet sich von der 628 Version in den CONFIG Bits.
Der 628A hat nur mehr 2 Möglichkeiten der CodeProtection (CP_ON/CP_OFF), 
während der 628 noch 4 hatte (CP_ON/CP_75/CP_50/CP_OFF).

von Martin M. (ats3788)


Lesenswert?

was ihr alles wisst. super danke

von Martin M. (ats3788)


Lesenswert?

debuggen geht wunderbar nur eben die kleinen käfer nicht ohne vorbau

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.