@KingTobi: ich habe das hexfile des beispielprogramm direkt genommen und es nicht nochmal extra kompiliert.
aber das bei mir grundsätzlich was beim kompilieren falsch läuft, kann ich ausschließen, da ich schon andere ordner erstellt habe und darin programme erstellt habe, welche auch korrekt liefen.
das am RP6Loader was nicht stimmt, kann ich daher auch ausschließen.
@Xandi11: wie ich das mit den ordner gemacht habe, habe ich in einem meiner letzten post schon ausführlich erklärt, aber ich glaube ich habe es genauso gemacht, wie du es mir hier erklärt hast.
was aber durchaus ein grund sein könnte, ist das, das irgendwas in genau diesem verzeichnis falsch kompiliert, wird, da irgendwelche orderdateien nicht korrekt sind.
das hier sind alle dateien in diesem ordner:
- Testprogramm_C (C-datei)
- make_all (einfach aus button-beispielprogramm kopiert)
-makefile(von buttons-beispielprogramm kopiert, bei target auf Testprogramm_C abgeändert)
- make clean(von buttons- beipsielprogramm kopiert)
- .dep ->Testprogramm_C.o.d.
- Testprogramm_C.elf
- Testprogramm_C.lss
- Testprogramm_C.map
- Testprogramm_C (Sym- datei)
- Testprogramm_C (hex.datei)
- Testprogramm_C.lst
- Testprogramm_C.o (O- datei)
leider kann ich gerade keiner eurer vorschläge ausprobieren, da ich erst am freitag wieder heim komme.
was mir jetzt gerade noch einfällt und evtl. wichtig sein könnte ist, dass ich den timer 1 auf 36khz CTC modus mit interrupt zur verwendung eines ir- kollisionssystems initialisiert habe. das sah folgendermaßen aus:
Code:
#include "RP6ControlLib.h"
uint8_t counter;
ISR(TIMER1_COMPA_vect)
{counter++;
if(counter <21)
{PORTD ^= (1<<PD5);
writeString_P("Interrupt Timer1 Compare\n");}
if(counter > 20 && interruptcounter <41)
{writeString_P("Interrupt Pause\n");}
if(counter == 41)
{counter =0;}
}
void infrarotempfang(void)
{if (PINC & (1<<6))
{writeString_P("Infrarot empfangen\n");
}
}
int main(void)
{initRP6Control();
DDRD |= (1<<PD5); //PD5 als Ausgang
DDRC &=~ (1<<6); //PC6 als Eingang
while(true)
{
infrarotempfang();
}
return 0;
}
timerinitialisierung:
Code:
TCCR1B = (0 << ICNC1)
| (0 << ICES1)
| (0 << WGM13)
| (1 << WGM12)
| (0 << CS12)
| (0 << CS11)
| (1 << CS10);
OCR1A = 221;
// Timer 2 - used for beeper:
TCCR2 = 0;
OCR2 = 0xFF;
// Enable timer interrupts:
TIMSK = (1 << OCIE0)|(1<<OCIE1A);
sei();
dieses programm hatte ich auch im Testprogramm_C ordner und bei diesem programm kamen alle textmeldungen des interrupts korrekt. nur die textmeldung am eingang kam nicht.
deshalb habe ich das programm anschließend abgeändert (ohne interrupt) um dem problem mit der eingangstextmeldung genauer auf den grund zu gehen.
alles ein bischen verwirrend, z.b. auch, warum das ganz einfache programm von KingTobi mit der Textmeldung jetzt auch keine textmeldung bringt.
vielleicht kann mir ja jetzt jemand entscheidend weiterhelfen.
danke auf jeden fall schon jetzt mal für euer großes bemühen.
mfg
Lesezeichen