Funktionsproblem i C AVR (löst)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Funktionsproblem i C AVR (löst)

Inlägg av klintan »

Har lite problem med funktionr i C när jag programmera min AVR atmega128.

Problemet är att så fort jag kallar på en funktion så fastnar programmet där och sedan resetas hela programmet(eller kretsen?) och programmet körs om.

Ett exempel:

Kod: Markera allt

#define F_CPU 1000000UL /* 1 MHz Internal Oscillator */
#include <avr/io.h>
#include <util/delay.h>
#define E PC2
#define RS PC0

void enable(){ // min funktion som ja vill kalla på

PORTC |= (1 << E); //sätt E hög och sänd datan
_delay_ms(5); 		// vänta och sen...
PORTC &= ~(1 << E); //sätt E låg och skicka nästa instruktion

}

int main()
{
... // initera LCD för hand med alla enable inlagda i main, alltså ej några yttre funktionsanrop

PORTA = 0x40;
PORTC |= (1 << E); //sätt E hög och sänd datan
_delay_ms(5000); 		// vänta och sen...
PORTC &= ~(1 << E); //sätt E låg och skicka nästa instruktion
PORTA = 0x40;
enable(); // hit kommer koden sen startar hela alltet om, så funktionen funkar iaf en gång som den skall, för att sedan gå om.
PORTA = 0x30; // detta kommer aldrig med
enable();

while(1){}
}

Antagligen ett lätt programmeringsfel, har gått igenom ett antal C tutorials på nätet och läst en massa om funktioner å funktionsanrop och return värden m.m.
Har också varit igenom ett antal LCD c program till avr där samtliga funktioner där ser ut som på mitt sätt. men nåt fel är de ju
Tacksam för alla förslag
Senast redigerad av klintan 16 mars 2007, 17:33:12, redigerad totalt 1 gång.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Har du kollat på fusebits så du inte kör den i mega103 läge?
den brukar krasha när man pillar i register och funktioner som finns i 128 men ej 103:an
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

När du ändå är i fusebits och rotar så ta en titt på JTAG-en, den kan ställa till det en del.
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg av klintan »

tack så mkt det var de som var problemet :)
Skriv svar