So hab mir jetzt folgendes Testprogramm geschrieben, aber es will nicht so recht:
Wenn ich das kompilieren will kommt folgende Fehlermeldung:Code:#include "RP6ControlLib.h" // The RP6 Control Library.
// Always needs to be included!
#include <stdlib.h>
#include <avr/interrupt.h>
volatile unsigned long timestamp; // volatile wegen Zugriff im Interrrupt
unsigned long impuls;
unsigned long periode;
unsigned long zeit;
uint8_t flag;
uint8_t position;
unsigned long wert;
char puffer[5];
void int1(void) // Flanke an INT1
{
timestamp = TCNT1;
if (position == 0)
{
MCUCR = (0<<ISC10); //fallende Flanke
TCNT1 = 0; //zurücksetzen (Anti-Überlauf)
position = 0;
}
else
{
MCUCR = (1<<ISC10); //steigende Flanke
position = 1;
}
flag = 1;
}
int main(void)
{
initRP6Control();
initLCD();
INT1_setEventHandler(int1);
MCUCR = (1<<ICS11) + (1<<ICS10); // Flanke von INT1 einstellen
GICR = (1<<INT1); // INT1 aktivieren
sei(); // Interrupts aktivieren
while(true)
{
if (flag == 1)
{
flag = 0;
if (position == 0)
{
periode = timestamp - zeit; // Zeit der kompletten Periode
zeit = timestamp; // neue Zeit
wert = impuls / periode; // werte ins Verhältnis setzen
utoa(wert,puffer,4);
writeStringLCD(puffer); // Ausgeben lassen
}
else
{
impuls = timestamp - zeit; // Zeit zwischen Rising up und Rising down
}
}
}
return 0;
}
Ich hoffe ihr findet meinen dummen Fehler -.-Code:Beschleunigungssensor.c: In function 'main':
Beschleunigungssensor.c:66: error: 'ICS11' undeclared (first use in this function)
Beschleunigungssensor.c:66: error: (Each undeclared identifier is reported only once
Beschleunigungssensor.c:66: error: for each function it appears in.)
Beschleunigungssensor.c:66: error: 'ICS10' undeclared (first use in this function)
make: *** [Beschleunigungssensor.o] Error 1
Gruß Lee
//EDIT: hab vergessen den Prescaler von 64 zu setzen und den Timer zu starten, aber ich weiß grad nicht wie -.-
//EDIT 2.0: mir ist gerade erst aufgefallen das man die 16 bit Register in zwei Schritten lesen muss. Och man ey ich raff det nich #-o