Heren, goedemiddag,
Tot vorige week kon ik prima .c compileren en vervolgens met xwisp programmeren.
Van het een op het andere lukte het niet meer. De reden is mij nog onbekend.
Ondertussen ben ik met een schoon (dual-boot) OS begonnen. Nu Linux, ernaast staat nog windows met dezelfde ontwikkel omgeving en dezelfde problemen.
Programmer: Wisp648 v1.30 (vanmiddag nog opnieuw firmware geplaatst)
Software: xwisp.py (v1.41)
IDE: MPLAB X IDE v1.70
Compiler: MPLAB XC8 C Compiler v1.12
Bovenstaande geeft eigenlijk al aan dat de programmer + xwisp software juist geconfigureerd is, anders zou ik geen nieuwe firmware hebben kunnen wegschrijven.
Wanneer ik een blink-a-led example van Voti.nl HEX gebruik gaat het ook GOED.
Wanneer ik hiervan de voorbeeld jal code omzet naar MPLab C, compileer en programmeer dan werkt het NIET.
Target chips: 16F819 (2 stuks op voorraad, beiden z.g.a.n), 16F689 (4+ op voorraad, nieuw)
Misschien zou iemand mij eerst van onderstaande MPLab C code een HEX file kunnen bouwen? Eerste test?
#include <xc.h>
#pragma config FOSC = HS // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB3/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off)
#pragma config CCPMX = RB2 // CCP1 Pin Selection bit (CCP1 function on RB2)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
#define _XTAL_FREQ 20000000
void main(void) {
TRISA0 = 0; //output
ADCON1 = 0x06; //disable analog?
while(1){
RA0 = 1;
__delay_ms(100);
RA0 = 0;
__delay_ms(100);
}
}
edit1:
stom stom.. nu het probleem/de foutmeldingen erbij..
Dit gebeurt alleen met HEX files die ik zelf bouw.
De blink-a-led example gaat prima.
# /opt/xwisp/xwisp.py write main.hex
XWisp 1.41, command line mode
hardware: Wisp648 1.30 (fast)
target: 16f819, device code 04E0 revision bits 05
An exception ocurred which was not explicitly handled by the XWisp application. The traceback below might give some information about the exception.
Traceback (most recent call last):
File "/opt/xwisp/xwisp.py", line 6928, in Interpret
self.Execute( Command )
File "/opt/xwisp/xwisp.py", line 6906, in Execute
exec( 'self.CMD_' + Command.upper() + '()' )
File "<string>", line 1, in <module>
File "/opt/xwisp/xwisp.py", line 6399, in CMD_WRITE
self.CMD_PUT()
File "/opt/xwisp/xwisp.py", line 6197, in CMD_PUT
Target = self.Target )
File "/opt/xwisp/xwisp.py", line 5377, in Write
self.__GoTo( Region, Address - Cluster + 1 )
File "/opt/xwisp/xwisp.py", line 5173, in __GoTo
Destination = Address - Region.Offset
AttributeError: 'int' object has no attribute 'Offset'
ERROR
# /opt/xwisp/xwisp.py load main.hex
XWisp 1.41, command line mode
OK
# /opt/xwisp/xwisp.py put
XWisp 1.41, command line mode
hardware: Wisp648 1.30 (fast)
target: 16f819, device code 04E0 revision bits 05
warning: no fuses information in image
OK
Bij PUT krijg ik wel een OK, maar ook na heeeeel lang wachten geen led die aan gaat.
Tegenvragen zijn uiteraard welkom 
Alvast bedankt.
[Bericht gewijzigd door mb200d op (25%)]
Als hex files verschillen van jezelf (werkt niet) en van derden (werkt wel) dan kun je de hex files vergelijken. Verschillend lijkende hexfiles kunnen wel hetzelfde binary image opleveren, om dat te controleren kun je de hex in binary omzetten, alle niet beschreven adressen (tevoren) ff of 00 maken, en dan de binaries vergelijken.
Ook disassembleren zal snel duidelijk maken wat er fout gaat.
Het lijkt 'm in de 16F819 te zitten.
Halverwege de hex upload loopt de wisp648 vast.
Ik werk nu verder met de 16F689.
Code wat aangepast, hex gebouwd, geupload en OK.
Ik zoek het later misschien nog wel eens uit.