Håller på med koden till kamerastyrningen. Allt har fungerat fint. Testade att minskade paustiden till servona.
Knappade in xwisp2w go servo1 och fick:
C:\XWISP2170\18LF1320>xwisp2w go servo1
XWisp2 version 1.6.01 (Aug 14 2005, Open Watcom C 1.30)
File SERVO1.Hex loaded and is Intel Hex format conforming
Programmer Wisp628, firmware version 1.09
Detected target: 18F1320 revision 02 (ID=07C2)
Target erased
Transferring image to 18F1320 via Wisp628
Transferring program memory...OK!
Verifying program memory......OK!
Transferring ID memory........OK!
Verifying ID memory...........OK!
Transferring data memory......OK!
Verifying data memory.........OK!
Transferring fuses memory.....OK!
Verifying fuses memory........failed at 00000A, expected: '0020', found: '0000'
Write-Verify failed after 1.68 seconds, rc 21!
XWisp2 failed after 3.51 seconds, rc 21!
Då tog jag bort raderna jag lagt till, men samma problem ändå. Har testat att byta PIC-krets, men det hjälper inte.
Vad beror detta på? Koden fungerade innan. Har inte ändrat något på labbplattan.
Hur hittar jag felet?
Senast redigerad av JimmyAndersson 29 juli 2006, 15:48:53, redigerad totalt 1 gång.
C:\XWISP2170\18LF1320>xwisp2w go servo1
xwisp2 version 1.9.0 for Windows (Apr 08 2006, Open Watcom C 1.40)
File servo1.hex loaded and is Intel Hex format conforming
Detected programmer: Wisp628, firmware version 1.09
Detected target: 18F1320 revision 02 (ID=07C2)
Target erased
Transferring program to 18F1320 via Wisp628
Transferring program memory...OK!
Verifying program memory......OK!
Transferring data memory......OK!
Verifying data memory.........OK!
Transferring ID memory........OK!
Verifying ID memory...........OK!
Transferring fuses memory.....OK!
Verifying fuses memory........failed at 30000A, expected: '2000', found: '0000'
Write-Verify operation failed after 1.71 seconds, rc 21!
xwisp2 failed after 3.13 seconds, rc 21!
Hm.. nu blir det fel på 30000A
hex-filen är den samma.
>> Koden fungerade innan.
> Innan vadå ??
Innan jag minskade paus-tiden till servona. Men nu får jag samma fel (som ovan) trots att jag återställt koden som den var från början när den fungerade.
Och nu går det ju fel efter 3.13 sek istället för 3.51 sek !
Det är ju alltid en framgång...
> failed at 30000A...
Nu får du i alla fall en rimligare adress.
Det är alltså CONFIG6L/CONFIG6H den klagar på.
Hur ser dina CONFIG inställningar ut i koden ?
Har du satt någon "write protect" ?
> Och nu går det ju fel efter 3.13 sek istället för 3.51 sek !
> Det är ju alltid en framgång...
Precis.
Kom just på hur man tar reda på vad t.ex 30000A motsvarar: Man kollar databladet...
Mycket riktigt så var det fel i CONFIG6L/CONFIG6H. De inställningarna hade trillat bort i DeviceFlag-inställningarna i MikroBasic. Det har hänt en gång tidigare. Nu är inget satt som "write protect" i CONFIG6L/CONFIG6H.
En intressant sak var att den gamla versionen av XWisp2 rapporterade
helt fel adress. Så någon nytta av bytet av version var det ju.
Sedan, ligger inte CONFIG-inställningarna i källkoden ?
Hur kan dom "tappas bort" ??
Personligen tycker jag att de ska följa med källkoden så
de inte försvinner när men t.ex uppgraderar sin utv. miljö.
Jag har kollat i både asm-koden och basic-koden, men inte hittat några CONFIG-rader där. Det verkar som om CONFIG-inställningarna inkluderas när man bygger hex-filen. Håller verkligen med om att det vore bättre om de följde med källkoden.
Jag brukar skriva ut de flesta av mina program för att lätt kunna titta tillbaka och återanvända procedurer. Brukar då även skriva upp CONFIG-inställningarna. Lite omständigt, men vad gör man när MikroBasic är lite "begränsat"...
Troligen har jag inte konverterat till assemblerismen just för att jag har så mycket färdig MikroBasic-kod. Det går förstås att översätta eller använda de genererade asm-filerna som grund om man byter utveckligsmiljö. Men "måste" man slänga ihop ett program lite snabbt så är det lätt att göra det i MikroBasic eftersom jag kunnat basic-syntaxen i snart 20 år.