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.
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 PORTBMartin 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, ...)
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.
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!
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
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.
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
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).
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.