Problem med C18 projekt för 18F4620

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
HimpoN
Inlägg: 13
Blev medlem: 28 november 2007, 15:44:39
Ort: Göteborg

Problem med C18 projekt för 18F4620

Inlägg av HimpoN »

Hej.

Efter en ganska lång tid utan det minsta PIC-pill var det dags igen.
Tänkte sätta igång ett lite större projekt, med LCD-display, lite sensorer osv. inget egentligen användbart utan mest för att lära mig något.
Tänkte mig för första gången använda mig av C (C18).
Hur som helst så har jag kommit så långt att jag har fått en (tror jag i alla fall) fungernade utvecklingsmiljö.
Gjorde en enkel test-grej med en diod på en utgång och det verkade funka, så jag började koppla in LCD och funderar lite på hur jag skulle bygga upp den koden.
Efter ett ganska bra tag upptäcker jag att i princip inget som går att verifiera verkar fungera och hela projektet verkar vara kaos.
Det visar sig att den där dioden jag tänt (skulle såklart blinkat den :) )kanske bara lös av en slump och mitt fina projekt kanske har något grundläggande fel i sin uppbyggnad eller konfiguration.

Efter att ha försökt gå till botten med detta har jag fallit tillbaka på ett problem som känns ganska trivialt. Jag försökte att toggla RA0 i MPLAB SIM och det ville helt enkelt inte fungera. Provade RA4 fungerade fint (varför?). Provar sedan att skicka över programmet till PICen och då verkar faktiskt både (eller ingen av dem :roll: ) RA0 och RA4 fungera, FAST det ser ut som att LEDen blinkar ofantligt fort oavsett hur lång delay jag skriver in.

Jag vet inte vad som kan vara fel, känns på något sätt i bakhuvudet som något jag missat och att jag gjort detta misstag förr... riktigt frustrerande.
Kanske skulle hållt mig kvar med trygga assembler.. :P

All hjälp uppskattas, vet inte riktigt vilken info om mitt MPLAB-projekt eller min uppkoppling som skulle kunna vara relevant, så fråga på.

Tack på förhand
Nannou
Inlägg: 123
Blev medlem: 3 april 2005, 22:01:29
Ort: Malmö
Kontakt:

Inlägg av Nannou »

Som vanligt; Skicka gärna med koden så vi vet vad du pratar om :)
HimpoN
Inlägg: 13
Blev medlem: 28 november 2007, 15:44:39
Ort: Göteborg

Inlägg av HimpoN »

Visst, visst....
Jag kan ha fel, men tror inte det ska vara något fel där.
Jag har lagt till tillhörande lkr-fil och det går att builda utan problem.
Kan det vara någon alternativ funktion benet kan ha som måste avaktiveras? Jag är fortfarande rätt förbryllad.
Och JA, talet i for-loopen är något högre när jag kör koden i processorn. :o
Funderade dessutom på config-bitsen, nu har jag satt dom i MPLAB, är det kanske bättre att lägga in det i koden?
Och kan något där kanske röra till det, har inte 100% koll på alla inställningar där.

Kod: Markera allt

#include<p18f4620.h>

void init(void);

void main(void)
{
int i;
init();

while(1)
 {
	PORTAbits.RA4 = 1;
 	for(i=0;i<2;i++)	
		Nop();
	
	PORTAbits.RA4 = 0;
 	for(i=0;i<2;i++)	
		Nop();
 }


return;
}


void init(void)
{
	
	TRISAbits.TRISA4 = 0;

 return;
}

Som jag skrev ovanför, denna variant med RA4 fungerar i simulator vilket det inte gör med RA0.
Ingen av dem fungerar i processorn.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag kan ha fel, men tror inte det ska vara något fel där.

Nähä... :-)

> Kan det vara någon alternativ funktion benet kan ha som måste avaktiveras?

En vågad gissning kanske, men det skulle ju kunna vara det
som databladet uttryckligen varnar för i kapitlet för PORTA.


> Funderade dessutom på config-bitsen, nu har jag satt dom i MPLAB, är det kanske bättre att lägga in det i koden?

I koden (om det går). Då hade vi sett dom också nu.

> har inte 100% koll på alla inställningar där.

Som t.ex ?
Ge exempel på vad i databladet som var otydligt om CONFIG så tar vi det.
HimpoN
Inlägg: 13
Blev medlem: 28 november 2007, 15:44:39
Ort: Göteborg

Inlägg av HimpoN »

Var väl inga oklarheter över configbitsen mer än att jag inte tog mig tid att kolla igenom dem alla, ställde mest in OSC och slarvade igenom resten.
Efter att ha lagt ner lite tid på att läsa om dessa kom jag fram till följande inställningar. Något som ser konstigt ut?

Kod: Markera allt

#pragma config OSC = HS
#pragma config FCMEN = ON
#pragma config IESO = OFF
#pragma config PWRT = ON
#pragma config BOREN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
#pragma config CCP2MX = PORTBE 
#pragma config STVREN = ON
#pragma config LVP = ON
#pragma config XINST = OFF
#pragma config DEBUG = OFF
Värt att nämna är att beteendet med dessa config-bits blir annorlunda när jag kör programmet i kretsen.
Nu ser man ett blink vid reset, sen inget mer.
*edit* Tilläg: Vid POR är det två blink och vid MCLR endast ett.
Kan detta vara en ledtråd? Jag är helt lost. :shock:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> #pragma config LVP = ON

Hur har du kopplat LVP pinnen ?
Enklast är att stänga av LVP, om du inte anvnder LVP.
HimpoN
Inlägg: 13
Blev medlem: 28 november 2007, 15:44:39
Ort: Göteborg

Inlägg av HimpoN »

Låter vettigt... När jag ändrar LVP till OFF går symptomen tillbaka till de tidigare...
Skriv svar