@stochri
Das ist kein Problem (siehe Selftest). Ich möchte, dass der Asuro beim Emfange eines Zeichens ein Interrupt auslöst z.B. durch RXCIE. Aber das Programm funktioniert nicht richtig. Irgendwo beim Übertragen über die IR-Schnittstelle habe ich ein Denkfehler. Ich habe ein Sourcecode gefunden, der eine RS232 mit einer SPI-Schnittstelle Aufbaut.
Bei mir wartet der Asuro immer auf ein Zeichen und führt dann eine Aktion aus.:
byte receive()
{
byte c;
/* Warten auf ein Zeichen von der seriellen Schnittstelle */
SerRead(&c, 1, 0);
toggle_led();
return c;
}
while(1)
{
/* Warten auf ein Kommando der seriellen Schnittstelle */
command = receive();
switch(command)
{
case TEST:
{
.......
Ich habe diese Art der Kommunikation schon früher in Mikrocontrollerrn verwendet, normalerweise kann beim Warten auf das Zeichen auch irgend eine Aktion durchführen. Das Empfangen und Verarbeiten des Zeichens geht so schnell, dass man keine Interrupt-getriebene Komunikation braucht.
Bei mir wartet der Asuro immer auf ein Zeichen und führt dann eine Aktion aus.:
byte receive()
{
byte c;
/* Warten auf ein Zeichen von der seriellen Schnittstelle */
SerRead(&c, 1, 0);
toggle_led();
return c;
}
while(1)
{
/* Warten auf ein Kommando der seriellen Schnittstelle */
command = receive();
switch(command)
{
case TEST:
{
.......
Ich habe diese Art der Kommunikation schon früher in Mikrocontrollerrn verwendet, normalerweise kann beim Warten auf das Zeichen auch irgend eine Aktion durchführen. Das Empfangen und Verarbeiten des Zeichens geht so schnell, dass man keine Interrupt-getriebene Komunikation braucht.
Jetzt ist es möglich scanf() und printf() zu benutzen.
Nachteil:
1. Overhead ist grösser als wie bei SerWrite() und SerRead()
2. Keine Interruptfähige Ein-/Ausgabe mehr
3. Fliesskommazahlen werden nicht verarbeitet.
In der makefile-Datei gibt es weiter Optionen die man einstellen kann.
Leider funktioniert bei mir das nicht:
-Wl,-u,vfscanf -lscanf_flt -lm
-Wl,-u,vfprintf -lprintf_flt -lm
hat jemand einen Tipp?
Lesezeichen