Anfänger Frage zu PIC16F628A

OP #3344428
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.
Gast #3344861
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, ...)
Gast #3344875
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.
Angehängte Dateien:
#3344907
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!
#3345007
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
#3346233
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren