Wisp648 kan ej längre identifiera 16F628A
Wisp648 kan ej längre identifiera 16F628A
Suttit och labbat lite med en LCD-display (ansluten till en PIC16F628A) de senaste dagarna och har nu fått allt att funka. Inget mer än displayen och ett pull up-motstånd på RA4 har funnits på plattan.
Imorse tänkte jag ta ett steg till genom att göra en "klocka" på displayen. Kopplade då in en 32kHz-kristall på Timer1 (pinne 12 och 13, RB6/RB7), skrev lite kod och fick även denna att funka, på första försöket.
Sen skulle jag ändra lite i koden och flasha om. Då tyckte XWisp att kretsen inte längre går att identifiera och/eller är defekt. Tänkte inte så mycket på det utan bytte till en ny 628A och flashade utan problem. Sen ändrade jag koden ytterligare en gång och skulle flasha om, och får då samma felmeddelande.
Här började jag misstänka att det är något lurt med Timer1, så jag provade att koppla bort kristallen innan jag flashade, men felet kvarstod. Kopplade då bort samtliga kringkomponenter (LCD, kristall), men felet kvarstod. Bytte till en ny 628A, flashade, funkade bra. Försökte sen flasha samma krets direkt, och XWisp ger samma felmeddelande.
Jag har läst i Wouters FAQ men hittar inget om detta problem. Är det något med Wisp/628/Timer1 som jag har missat? Känns ganska konstigt att kretsen skulle bli obrukbar (läs: omöjlig att flasha om) bara för att man startat T1-oscillatorn.
Imorse tänkte jag ta ett steg till genom att göra en "klocka" på displayen. Kopplade då in en 32kHz-kristall på Timer1 (pinne 12 och 13, RB6/RB7), skrev lite kod och fick även denna att funka, på första försöket.
Sen skulle jag ändra lite i koden och flasha om. Då tyckte XWisp att kretsen inte längre går att identifiera och/eller är defekt. Tänkte inte så mycket på det utan bytte till en ny 628A och flashade utan problem. Sen ändrade jag koden ytterligare en gång och skulle flasha om, och får då samma felmeddelande.
Här började jag misstänka att det är något lurt med Timer1, så jag provade att koppla bort kristallen innan jag flashade, men felet kvarstod. Kopplade då bort samtliga kringkomponenter (LCD, kristall), men felet kvarstod. Bytte till en ny 628A, flashade, funkade bra. Försökte sen flasha samma krets direkt, och XWisp ger samma felmeddelande.
Jag har läst i Wouters FAQ men hittar inget om detta problem. Är det något med Wisp/628/Timer1 som jag har missat? Känns ganska konstigt att kretsen skulle bli obrukbar (läs: omöjlig att flasha om) bara för att man startat T1-oscillatorn.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: Wisp648 kan ej längre identifiera 16F628A
Hur har du satt MCLR?
Prova att kortslut bygeln du har på wispen under programmeringen.
Prova att kortslut bygeln du har på wispen under programmeringen.
Re: Wisp648 kan ej längre identifiera 16F628A
victor: Jag har ett 10k-motstånd satt mellan MCLR-pinnen och Vcc. Ska prova med bygeln.
sodjan:
sodjan:
Kod: Markera allt
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLREN & UNPROTECT & BORDIS & LVPDIS);
Re: Wisp648 kan ej längre identifiera 16F628A
hur gick det???
jag har samma problem med en(två) 12F675. Ungefär samma sak som du. Försökte få en OSRAM-display att funka (fick aldrig den att funka) men sedan kunde jag inte flasha om den. Testade med en ny 12F675. Körde först en led-blink kod, som fungerade. Testade sedan min osram-kod (som givetvis inte funkade denna gången heller) och sen gick den inte att flasha om! Först klagar xwisp2 på att det inte går att autodetecta. Så då testade jag att skriva in target vid flashningen och får följande felmedelande:
EDIT:
Min __config:
jag har samma problem med en(två) 12F675. Ungefär samma sak som du. Försökte få en OSRAM-display att funka (fick aldrig den att funka) men sedan kunde jag inte flasha om den. Testade med en ny 12F675. Körde först en led-blink kod, som fungerade. Testade sedan min osram-kod (som givetvis inte funkade denna gången heller) och sen gick den inte att flasha om! Först klagar xwisp2 på att det inte går att autodetecta. Så då testade jag att skriva in target vid flashningen och får följande felmedelande:
Kod: Markera allt
L:\Xwisp\Projects\12F675-1>xwisp2w TARGET 12F675 go ledtest
xwisp2 version 1.9.5 for Windows (Jan 24 2008, Open Watcom C/C++ 1.70)
File ledtest.hex loaded and is Intel Hex format conforming
Detected programmer: Wisp648, firmware version 1.23
Target not auto-detected, using specified target: 12F675
Target erased
Transferring program to 12F675 via Wisp648
Transferring program memory...100%
Verifying program memory...... 0%failed at 000000, expected: '280C', found: '3F
FF'
Write-Verify operation failed after 0.39 seconds, rc 21
xwisp2 failed after 2.74 seconds, rc 21
Press 'Enter' to continue:
EDIT:
Min __config:
Kod: Markera allt
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
Re: Wisp648 kan ej längre identifiera 16F628A
Man ska **ALDRIG** (behöva) ange "target" för en PIC som har device-ID inbyggt !
Och det hjälper (i princip) **ALDRG** när man får denna typ av problem...
Någonting annan är galet...
> Körde först en led-blink kod, som fungerade.
Vilken "led-blink kod" ??
Och fungerade det att programmera om flera gånger ?
> Testade sedan min osram-kod (som givetvis inte funkade denna gången heller)
Fungerade det att programmera *en* gång ? Eller inte alls ?
Och det hjälper (i princip) **ALDRG** när man får denna typ av problem...
Någonting annan är galet...
> Körde först en led-blink kod, som fungerade.
Vilken "led-blink kod" ??
Och fungerade det att programmera om flera gånger ?
> Testade sedan min osram-kod (som givetvis inte funkade denna gången heller)
Fungerade det att programmera *en* gång ? Eller inte alls ?
Re: Wisp648 kan ej längre identifiera 16F628A
Blinkaled-kod:
osram-kod:
Ledkoden fungerade (leden blinkade) och sen laddade jag osram-koden. Koden fungerade inte (fick inte ut det jag ville på displayen) så jag försökte med blinkaled-koden igen, men då gick den inte att flasha.
Kod: Markera allt
;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------
LIST P=12F675 ; list directive to define processor
#INCLUDE <P12F675.INC> ; processor specific variable definitions
;------------------------------------------------------------------------------
;
; CONFIGURATION WORD SETUP
;
; The 'CONFIG' directive is used to embed the configuration word within the
; .asm file. The lables following the directive are located in the respective
; .inc file. See the data sheet for additional information on configuration
; word settings.
;
;------------------------------------------------------------------------------
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
;------------------------------------------------------------------------------
; VARIABLE DEFINITIONS
;------------------------------------------------------------------------------
; example of using Shared Uninitialized Data Section
INT_VAR UDATA_SHR 0x20
W_TEMP RES 1 ; variable used for context saving
STATUS_TEMP RES 1 ; variable used for context saving
;------------------------------------------------------------------------------
; EEPROM INITIALIZATION
;
; The 12F675 has 128 bytes of non-volatile EEPROM, starting at address 0x2100
;
;------------------------------------------------------------------------------
DATAEE CODE 0x2100
DE "MCHP" ; Place 'M' 'C' 'H' 'P' at address 0,1,2,3
;------------------------------------------------------------------------------
; OSCILLATOR CALIBRATION VALUE
;------------------------------------------------------------------------------
OSC CODE 0x03FF
; Internal RC calibration value is placed at location 0x3FF by Microchip as
; a 0xADDLW K instruction, where the K is a literal value to be loaded into
; the OSCCAL register.
;------------------------------------------------------------------------------
; RESET VECTOR
;------------------------------------------------------------------------------
RESET_VECTOR CODE 0x0000 ; processor reset vector
GOTO START ; go to beginning of program
;------------------------------------------------------------------------------
; INTERRUPT SERVICE ROUTINE
;------------------------------------------------------------------------------
INT_VECTOR CODE 0x0004 ; interrupt vector location
MOVWF W_TEMP ; save off current W register contents
MOVF STATUS,w ; move status register into W register
MOVWF STATUS_TEMP ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
MOVF STATUS_TEMP,w ; retrieve copy of STATUS register
MOVWF STATUS ; restore pre-isr STATUS register contents
SWAPF W_TEMP,f
SWAPF W_TEMP,w ; restore pre-isr W register contents
RETFIE ; return from interrupt
;------------------------------------------------------------------------------
; MAIN PROGRAM
;------------------------------------------------------------------------------
MAIN_PROG CODE
START
;------------------------------------------------------------------------------
; OSCCAL RESTORE (not required if internal OSC is not used)
;------------------------------------------------------------------------------
errorlevel -302
BSF STATUS,RP0 ; set file register bank to 1
CALL 0x3FF ; retrieve factory calibration value
MOVWF OSCCAL ; update register with factory cal value
BCF STATUS,RP0 ; set file register bank to 0
errorlevel +302
;------------------------------------------------------------------------------
; PLACE USER PROGRAM HERE
;------------------------------------------------------------------------------
banksel cmcon
movlw h'7'
movwf cmcon ;stäng av komperatorer
banksel ansel
clrf ansel ;stäng av ADC
banksel trisio
clrf trisio ;alla pinnar utgångar
banksel GPIO
clrf GPIO ;alla pinnar låga
MAIN_VAR UDATA_SHR
d1 RES 1
d2 RES 2
MAIN_CODE CODE
loop
incfsz d1
goto loop
incfsz d2
goto loop
comf GPIO ;Blinka GPIO
goto loop
Kod: Markera allt
;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------
LIST P=12F675 ; list directive to define processor
#INCLUDE <P12F675.INC> ; processor specific variable definitions
;------------------------------------------------------------------------------
;
; CONFIGURATION WORD SETUP
;
; The 'CONFIG' directive is used to embed the configuration word within the
; .asm file. The lables following the directive are located in the respective
; .inc file. See the data sheet for additional information on configuration
; word settings.
;
;------------------------------------------------------------------------------
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
;------------------------------------------------------------------------------
; VARIABLE DEFINITIONS
;------------------------------------------------------------------------------
#define SCDQ5542Q_LOAD GPIO, GP0
#define SCDQ5542Q_SDATA GPIO, GP1
#define SCDQ5542Q_SDCLK GPIO, GP2
;------------------------------------------------------------------------------
; EEPROM INITIALIZATION
;
; The 12F675 has 128 bytes of non-volatile EEPROM, starting at address 0x2100
;
;------------------------------------------------------------------------------
DATAEE CODE 0x2100
DE "MCHP" ; Place 'M' 'C' 'H' 'P' at address 0,1,2,3
;------------------------------------------------------------------------------
; OSCILLATOR CALIBRATION VALUE
;------------------------------------------------------------------------------
OSC CODE 0x03FF
; Internal RC calibration value is placed at location 0x3FF by Microchip as
; a 0xADDLW K instruction, where the K is a literal value to be loaded into
; the OSCCAL register.
;------------------------------------------------------------------------------
; RESET VECTOR
;------------------------------------------------------------------------------
RESET_VECTOR CODE 0x0000 ; processor reset vector
GOTO START ; go to beginning of program
;------------------------------------------------------------------------------
; INTERRUPT SERVICE ROUTINE
;------------------------------------------------------------------------------
INT_VAR UDATA_SHR 0x20
W_TEMP RES 1 ; variable used for context saving
STATUS_TEMP RES 1 ; variable used for context saving
INT_VECTOR CODE 0x0004 ; interrupt vector location
MOVWF W_TEMP ; save off current W register contents
MOVF STATUS,w ; move status register into W register
MOVWF STATUS_TEMP ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
MOVF STATUS_TEMP,w ; retrieve copy of STATUS register
MOVWF STATUS ; restore pre-isr STATUS register contents
SWAPF W_TEMP,f
SWAPF W_TEMP,w ; restore pre-isr W register contents
RETFIE ; return from interrupt
;------------------------------------------------------------------------------
; MAIN PROGRAM
;------------------------------------------------------------------------------
MAIN_PROG CODE
START
;------------------------------------------------------------------------------
; OSCCAL RESTORE (not required if internal OSC is not used)
;------------------------------------------------------------------------------
errorlevel -302
BSF STATUS,RP0 ; set file register bank to 1
CALL 0x3FF ; retrieve factory calibration value
MOVWF OSCCAL ; update register with factory cal value
BCF STATUS,RP0 ; set file register bank to 0
errorlevel +302
;------------------------------------------------------------------------------
; PLACE USER PROGRAM HERE
;------------------------------------------------------------------------------
banksel cmcon
movlw h'7'
movwf cmcon ;stäng av komperatorer
banksel ansel
clrf ansel ;stäng av ADC
banksel trisio
clrf trisio ;alla pinnar utgångar
banksel GPIO
;
; Så då var grundinställningen av processorn klar...
;
; Ge displayen lite tid att starta upp efter power-on.
call delay_1s
;
; Se till att WR-pinnen är i "rätt" läge från början.
bcf SCDQ5542Q_SDCLK
bsf SCDQ5542Q_LOAD
;
; Ladda W med lite olika data och anropa rutinen för att
; skifta ut dom till dipslayen...
;
movlw b'11000000' ; clear display
call SCDQ5542Q_write_char
movlw b'11110100' ; brightnes 20%
call SCDQ5542Q_write_char
;
movlw b'10100011' ; char 3
call SCDQ5542Q_write_char
movlw b'00010001' ; Data för "H"
call SCDQ5542Q_write_char
movlw b'00110001'
call SCDQ5542Q_write_char
movlw b'01011111'
call SCDQ5542Q_write_char
movlw b'01110001'
call SCDQ5542Q_write_char
movlw b'10010001'
call SCDQ5542Q_write_char
;
movlw b'10100010' ; char 2
call SCDQ5542Q_write_char
movlw b'00011111' ; Data för "E"
call SCDQ5542Q_write_char
movlw b'00100001'
call SCDQ5542Q_write_char
movlw b'01011111'
call SCDQ5542Q_write_char
movlw b'01100001'
call SCDQ5542Q_write_char
movlw b'10011111'
call SCDQ5542Q_write_char
;
movlw b'10100001' ; char 1
call SCDQ5542Q_write_char
movlw b'00000110' ; Data för "J"
call SCDQ5542Q_write_char
movlw b'00101001'
call SCDQ5542Q_write_char
movlw b'01010000'
call SCDQ5542Q_write_char
movlw b'01110000'
call SCDQ5542Q_write_char
movlw b'10011111'
call SCDQ5542Q_write_char
;
movlw b'10100000' ; char 0
call SCDQ5542Q_write_char
movlw b'00000100' ; Data för "!"
call SCDQ5542Q_write_char
movlw b'00100000'
call SCDQ5542Q_write_char
movlw b'01000100'
call SCDQ5542Q_write_char
movlw b'01100100'
call SCDQ5542Q_write_char
movlw b'10000100'
call SCDQ5542Q_write_char
;
;
loop goto loop ; Gör ingenting mer....
;
;
;*********************************************************************
;*********************************************************************
; Subrutin för SCDQ5542Q
;
; Två temp variabler som används av rutinen.
; Lägger dom i "shared memory" så slipper vi banksel...
; SCDQ5542Q_CHAR håller byten som ska ut medan den
; skiftas, SCDQ5542Q_TMP är en bit-räknare...
;
SCDQ5542Q_VARS UDATA_SHR ; Starta ny data-section.
SCDQ5542Q_TMP RES 1 ; Position på displayen.
SCDQ5542Q_CHAR RES 1 ; Tecken som ska skrivas.
;
; Slut på variabler, här kommer koden...
;
SCDQ5542Q_CODE CODE ; Starta ny code-section.
;
; Rutin för att skriva ett tecken på displayen.
; Anropas av "SCDQ5542Q_out" macrot.
; Rutinen ska anropas med tecknet som ska skickas i W registret.
;
SCDQ5542Q_write_char
;
movwf SCDQ5542Q_CHAR ; Spara W.
movlw h'08' ; Antal bitar i en byte
movwf SCDQ5542Q_TMP ; till "bit-räknaren"...
;
bcf SCDQ5542Q_LOAD ; Starta överföring
bcf status, c ; Se till att C är "nollad"
;
next_bit
rrf SCDQ5542Q_CHAR, f ; Skifta en bit till C-flaggan
btfss status, c ; Var den "1" ?
goto send_low ; Nej, skicka en nolla...
bsf SCDQ5542Q_SDATA ; Ja, skicka en etta...
goto clock
send_low
bcf SCDQ5542Q_SDATA
clock
nop
bsf SCDQ5542Q_SDCLK ; "Klocka" in biten på SDATA
nop
bcf SCDQ5542Q_SDCLK ; till displayen...
nop
decfsz SCDQ5542Q_TMP, f ; Alla bitar skickade ?
goto next_bit ; Nej, kör ett varv till...
;
nop
bsf SCDQ5542Q_LOAD ; Avsluta överföringen genom att
nop ; sätta LOAD pinnen hög igen.
nop
;
return
;
;**********************************************************************
;**********************************************************************
; Diverse delay rutiner.
; Alla delay rutiner generade med kodgeneratorn här :
; http://www.piclist.com/techref/piclist/codegen/delay.htm
; OBS generatade för 4 Mhz processorhastighet.
;
DLY_VAR UDATA_SHR
d1 RES 1
d2 RES 1
d3 RES 1
;
;
DLY_CODE CODE
;
delay_1s
movlw 0x08
movwf d1
movlw 0x2F
movwf d2
movlw 0x03
movwf d3
Delay_1s_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_1s_0
goto $+1
nop
return
;
;**********************************************************************
;**********************************************************************
end
Re: Wisp648 kan ej längre identifiera 16F628A
Jag tror att Sodjan är ute efter vilken variant av blinka-LED du körde. Alltså med avseende på intern/extern MCLR och intern/extern oscillator. Det finns olika varianter upplagda på hemsidan. Att PIC:en inte går att flasha om utan extra hjälpmedel brukar bli efter programmering med intern reset. PIC:en får då fel fel ordning på signalerna vid övergång till programmeringsläge.
Nu vet jag inte om det var det du gjorde, men ett allmänt råd. Undvik intern MCLR om du inte absolut måste ha det! Saker blir mycket enklare då.
Edit: Det låter mer på din beskrivning som att ditt program (osramkoden) kört med intern MCLR så som du beskriver det. Eller så är det något helt annat som är felet.
Nu vet jag inte om det var det du gjorde, men ett allmänt råd. Undvik intern MCLR om du inte absolut måste ha det! Saker blir mycket enklare då.

Edit: Det låter mer på din beskrivning som att ditt program (osramkoden) kört med intern MCLR så som du beskriver det. Eller så är det något helt annat som är felet.
Re: Wisp648 kan ej längre identifiera 16F628A
> Ledkoden fungerade...
Även flera omprogrammeringar efter varandra utan problem?
(Jag frågade förrut men ser inte att det var något tydligt svar på det).
Om man har något i koden som gör att det strular med omprogrammeringar
så fungerar det oftast OK *första* gången (innan koden finns i kretsen).
Därför är det viktigt att veta om ledkoden fungerade att programmera
om flera gånger...
Även flera omprogrammeringar efter varandra utan problem?
(Jag frågade förrut men ser inte att det var något tydligt svar på det).
Om man har något i koden som gör att det strular med omprogrammeringar
så fungerar det oftast OK *första* gången (innan koden finns i kretsen).
Därför är det viktigt att veta om ledkoden fungerade att programmera
om flera gånger...
Re: Wisp648 kan ej längre identifiera 16F628A
eftersom blinkaled-koden fungerade så testade jag ju av förklarliga skäl inte att programmera om den koden några fler gånger utan körde osramkoden. Det va efter det som det inte fungerade!
EDIT:
Alltså:
1. blinkaled.hex -->fungerar att flasha kretsen --> koden fungarar som den ska!
2. osram.hex --> fungerar att flasha kretsen --> koden fungerar inte som jag har tänkt mig
3. blinkaled.hex --> fungerar inte att flasha kretsen
EDIT:
Alltså:
1. blinkaled.hex -->fungerar att flasha kretsen --> koden fungarar som den ska!
2. osram.hex --> fungerar att flasha kretsen --> koden fungerar inte som jag har tänkt mig
3. blinkaled.hex --> fungerar inte att flasha kretsen
Re: Wisp648 kan ej längre identifiera 16F628A
Det hade varit bra att flasha om ledkoden 4-5 gånger för att se att
allt fungerade stabilt och repeterbart.
> ...utan körde osramkoden.
Och det gick alltså att flasha helt utan problem *första* gången ?
Även efter att ledkoden var i kretsen ? Men sedan gick det aldrig att
flasha om med osramkoden (eller med ledkoden) igen ?
Det går ju ganska snabbt att slänga upp en 675'a och testa.
Om jag hinner i morgon så provar jag med de koder som du har
postas här i tråden.
allt fungerade stabilt och repeterbart.
> ...utan körde osramkoden.
Och det gick alltså att flasha helt utan problem *första* gången ?
Även efter att ledkoden var i kretsen ? Men sedan gick det aldrig att
flasha om med osramkoden (eller med ledkoden) igen ?
Det går ju ganska snabbt att slänga upp en 675'a och testa.
Om jag hinner i morgon så provar jag med de koder som du har
postas här i tråden.
Re: Wisp648 kan ej längre identifiera 16F628A
Det gick utan problem att flasha första gången, även när led-koden fanns i kretsen. Men sedan gick det ej att flasha med någon av koderna.
Re: Wisp648 kan ej längre identifiera 16F628A
OK, som du ser så är tydlighet A och O här...

Som jag tolkar det nu så är det något med "osram-koden".
Ledkoden går att flasha om flera gånger utan problem.
Osramkoden går att flasha *en* gång, sedan är 675'an "låst".
Är du helt säker på att den HEX fil du använder faktiskt motsvarar
den källkod du har postas här ? Ibland dribblar man bort sig bland
alla filer...
Just nu har jag något skumt fel på MPLAB (8.30), håller på att
installera om. Går det bra så kollar jag lite...


Som jag tolkar det nu så är det något med "osram-koden".
Ledkoden går att flasha om flera gånger utan problem.
Osramkoden går att flasha *en* gång, sedan är 675'an "låst".
Är du helt säker på att den HEX fil du använder faktiskt motsvarar
den källkod du har postas här ? Ibland dribblar man bort sig bland
alla filer...

Just nu har jag något skumt fel på MPLAB (8.30), håller på att
installera om. Går det bra så kollar jag lite...
Re: Wisp648 kan ej längre identifiera 16F628A
Jag hade ett liknande fel då var det dags att uippgradera WISP och XWISP. Men detta verkar ju vara lite nyare versioner så jag vet inte om det kan vara nåt liknande.
Re: Wisp648 kan ej längre identifiera 16F628A
OK, jag har byggt båda koderna i MPLAB (8.30) utan större problem.
Ledkoden saknade "end" och osramkoden hade en massa instruktioner
i pos 1 (i delay rutinerna). Fick du inte en massa varningar om det ??
Jag tror inte att det påverkar resultatet, men i alla fall...
> Jag hade ett liknande fel då var det dags att uippgradera WISP och XWISP.
Sant, men det "känns" inte som att det har med det att göra.
Jag ser ett par orsaker.
- Flashar med fel HEX fil som har fel CONFIG inställningar.
- Något med spänningsmatningen som inte är OK.
- Något annat med uppkopplingen...
Men visst, vid "konstiga" fel så är det ju en standard test att alltid
kolla med senaste versionerna.
Ledkoden saknade "end" och osramkoden hade en massa instruktioner
i pos 1 (i delay rutinerna). Fick du inte en massa varningar om det ??
Jag tror inte att det påverkar resultatet, men i alla fall...
> Jag hade ett liknande fel då var det dags att uippgradera WISP och XWISP.
Sant, men det "känns" inte som att det har med det att göra.
Jag ser ett par orsaker.
- Flashar med fel HEX fil som har fel CONFIG inställningar.
- Något med spänningsmatningen som inte är OK.
- Något annat med uppkopplingen...
Men visst, vid "konstiga" fel så är det ju en standard test att alltid
kolla med senaste versionerna.