Goeden middag
Ik heb voor een PIC 18F24K20 een stuk coden geschreven. Wanneer ik deze code import bij PICkit2 krijg ik een warning: HEX File loaded is larger then device.
Nu heb ik een stukje test code die 1 uitgang hoog moet maken en ik krijg de warning nog steeds.
#include <pic18.h>
//#include <p18f24k20.h>
//__CONFIG(FCMEN_OFF & IESO_OFF & BOREN_OFF & CP_OFF & PWRTE_OFF & WDTE_OFF & MCLRE_OFF & FOSC_INTRCIO);
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF
void main(void)
{
ANSEL = 0x00; // AN1 and AN2 are digitaal inputs (Instellen voor Volume Omgeving)
ANSELH = 0;
PORTA = PORTC = 0; // Alle uitgangen 0 maken.
TRISA = 0b11111101; // TRISA<7:0> = 11111101, PORTA<7:2> input, PORTA<1> output, PORTA<0> input
TRISB = 0b11111111; // TRISB<4:0> = 11111111, PORTB<7:5> Programmer, PORTB<4:0> input.
TRISC = 0b01001001; // TRISC<7:0> = 01001001, PORTC<7> output, PORTC<6> input, PORTC<5:4> outputs, PORTC<3> input, PORTC<2:1> output, PORTC<0> input.
// ======-Einde initalisatie ========================================================
//------- Begin loop die controleerd welke feedback gegeven moet worden.---------------
while (1)
{
RC1 = 1;
}
} Kan iemand mij vertellen wat er fout gaat??
Waarom gebruik je de generieke header pic18.h en niet je device specifieke header p18f24k20.h ? Compileert je code anders niet?
Waarschijnlijk gebruik je een config/register welke niet voor je 18F24K20 device gemapped is (maar welke wel voor andere PIC18 devices bestaat) waarbij de PICKit2 een warning geeft.
pic18.h en p18f24k20.h geven beide het zelfde resultaat.
maar jij denkt dat het mogelijk die Pragma config instelling is waardoor die raar doet?
__CONFIG(1,IESODIS & FCMDIS & RCIO);
__CONFIG(2,BORDIS & PWRTDIS & WDTDIS);
__CONFIG(3,MCLRDIS & HFSTABLE & LPT1DIS & PBDIGITAL & CCP2RB3);
__CONFIG(4,XINSTDIS & DEBUGDIS & LVPDIS & STVRDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(6,WRTEN);Hier word aan gegeven dat niet alles een waarde heeft. maar dit heb ik uit een document waar alle alle PIC beschreven staat.
Dat bedoelde je tog?
[Bericht gewijzigd door Henry S. op (58%)]
hadv
Just find out what you like and let it kill you
Rare vraag misschien, maar staat je device type wel goed ingesteld in MPLAB? Dat wil wel eens verkeerd gaan, bijvoorbeeld doordat een bestaand project voor een andere PIC "hergebruikt" wordt.
Kijk anders even in de gegenereerde hex file (gezien de broncode zal deze niet al te groot zijn). File is in extended Intel hex formaat en daar staan alle gebruikte adressen in. Wellicht dat wat meer kijk geeft op wat er fout gaat.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Als ik die melding krijg is het altijd doordat het type pic niet klopt met de werkelijke pic die aan de pickit2 hangt...
(ik weet niet welke C compiler je gebruikt...)