ja, habe ich, werde ich versuchen einzubinden...
danke
Druckbare Version
ja, habe ich, werde ich versuchen einzubinden...
danke
also das mit der 2.7 asuro lib hat nicht geklappt, habe mich also "mit der rechten hand hinterm linken ohr gekratzt":
jetzt sind drei einser in der mitte. Eigetlich dachte ich ich kann unter char"z" den asci-code des - zeichens so ausgeben lassen, hat aber auch nicht funktioniert...Code:char z;
z = 111;
Init();
SerWrite("\n\r --- Line Sensor Test ---",28);
...
SerWrite("\n\r Phototransistorwerte links/rechts: ",39);
PrintInt(data[0]);
PrintInt(z);
//SerWrite("\n\r !",1);
du kannst es mal mit einem "unsigned char" probieren... dann sollte evtl auch das direkt eingegebene ascii zeichen funktionieren. buchstaben müssen zur ausgabe immer unsigned sein.
Hallo inka,
schade.Zitat:
Zitat von inka
Hier liegt der Grund für die drei 1er, Du hast PrintInt() verwendet ...Zitat:
...Code:z = 111;
...
PrintInt(z);
Flashe doch mal flogendes Programm auf Deinen Asuro und poste den Output, es werden alle ASCII-Zeichen (ohne Steuerzeichen) ausgegeben:
Die Verwendung von _UartPutc_() geschieht hier nur, um unabhängig von irgendwelchen Library-Versionen zu sein ... (ist die umbenannte Version aus der AsuroLib v270rc3)Code:#include <asuro.h>
void _UartPutc_ (unsigned char zeichen)
{
UCSRB = 0x08; // enable transmitter
UCSRA |= 0x40; // clear transmitter flag
while (!(UCSRA & 0x20)) // wait for empty transmit buffer
;
UDR = zeichen;
while (!(UCSRA & 0x40)) // Wait for transmit complete flag (TXC)
;
}
int main(void)
{
unsigned char u;
Init();
for(u=0x20; u<0x80; ++u)
{
_UartPutc_(u);
if ((u&0x0F)==0x0F)
{
_UartPutc_('\r');
_UartPutc_('\n');
}
}
while (1);
return 0;
}
So sieht der Output meines Asuro aus:
Code:!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~
hi hermann,
ich habe ein paar zeilen aus deinem programm - gleich für das "-" zeichen angepasst - in meines reinkopiert, ich gebe zu nicht alles verstanden zu haben von dem was da in deinen zeilen stand (die komentare halfen aber immerhin um die funktion der zeile zu erahnen:-))
das "-" zeichen wird jetzt ausgegeben, die zweite hälfte des satzesCode:#include "asuro.h" // Prüfung der Phototransitoren
/* ------------ Line Sensor Test ---------------- */
/* Left Sensor -> Left Break LED ON when Light on
Left Phototransistor bright enough */
/* Right Sensor -> Right Break LED ON when Light on
Right Phototransistor bright enough */
void _UartPutc_ (unsigned char zeichen)
{
UCSRB = 0x08; // enable transmitter
UCSRA |= 0x40; // clear transmitter flag
while (!(UCSRA & 0x20)) // wait for empty transmit buffer
;
UDR = zeichen;
while (!(UCSRA & 0x40)) // Wait for transmit complete flag (TXC)
;
}
int main(void)
{
unsigned char tmp[2] = {OFF,OFF};
unsigned int data[2];
unsigned char z;
z = 0x2D;
Init();
SerWrite("\n\r --- Line Sensor Test ---",28);
StatusLED(OFF);
FrontLED(ON);
do
}
*/
LineData(data);
if (data[0] > 400)
tmp[0] = ON;
else
tmp[0] = OFF;
if (data[1] > 400)
tmp[1] = ON;
else
tmp[1] = OFF;
BackLED(tmp[0],tmp[1]);
SerWrite("\n\r Phototransistorwerte--",35);
PrintInt(data[0]);
_UartPutc_(0x2D);
//PrintInt(z);
//SerWrite("\n\r !",1);
//SerPrint(" ");
PrintInt(data[1]);
// SerWrite("\f",1); //Seitenvorschub EDIT 2: bringt Fehler bei der Ausgabe
}
while(1);
return 0;
}
/* END Line Sensor Test ------------------------- */
"\n\r Phototransistorwerte : links/rechts",39"
wurde durch irgendwelche weisen rechtecke überschrieben, deshalb habe ich es abgekürzt...
fängt die funktion
_UartPutc_(0x2D);
nicht dort an auszugeben wo die vorhergehende zeile aufgehört hat?
Hi inka,
da hat sich der Fehlerteufel beim ersten do eingeschlichen!Zitat:
Zitat von inka
Dann habe ich noch \n\r geändert in \r\n, und dieses kompilierbare Programm funktioniert:Und hier Output von myIrAsuro:Code:#include "asuro.h" // Prüfung der Phototransitoren
/* ------------ Line Sensor Test ---------------- */
/* Left Sensor -> Left Break LED ON when Light on
Left Phototransistor bright enough */
/* Right Sensor -> Right Break LED ON when Light on
Right Phototransistor bright enough */
void _UartPutc_ (unsigned char zeichen)
{
UCSRB = 0x08; // enable transmitter
UCSRA |= 0x40; // clear transmitter flag
while (!(UCSRA & 0x20)) // wait for empty transmit buffer
;
UDR = zeichen;
while (!(UCSRA & 0x40)) // Wait for transmit complete flag (TXC)
;
}
int main(void)
{
unsigned char tmp[2] = {OFF,OFF};
unsigned int data[2];
unsigned char z;
z = 0x2D;
Init();
SerWrite("\r\n --- Line Sensor Test ---",28);
StatusLED(OFF);
FrontLED(ON);
do
{
LineData(data);
if (data[0] > 400)
tmp[0] = ON;
else
tmp[0] = OFF;
if (data[1] > 400)
tmp[1] = ON;
else
tmp[1] = OFF;
BackLED(tmp[0],tmp[1]);
SerWrite("\r\n Phototransistorwerte--",35);
PrintInt(data[0]);
_UartPutc_(0x2D);
//PrintInt(z);
//SerWrite("\n\r !",1);
//SerPrint(" ");
PrintInt(data[1]);
// SerWrite("\f",1); //Seitenvorschub EDIT 2: bringt Fehler bei der Ausgabe
}
while(1);
return 0;
}
/* END Line Sensor Test ------------------------- */
Code:--- Line Sensor Test ---
Phototransistorwerte-- 982-976
Phototransistorwerte-- 424-783
Phototransistorwerte-- 264-350
Phototransistorwerte-- 236-217
Phototransistorwerte-- 236-203
Phototransistorwerte-- 234-198
Phototransistorwerte-- 235-199
Phototransistorwerte-- 235-199
Phototransistorwerte-- 234-197
Phototransistorwerte-- 229-190
Phototransistorwerte-- 233-194
Phototransistorwerte-- 233-197
Phototransistorwerte-- 233-202
Phototransistorwerte-- 232-225
Phototransistorwerte-- 228-205
Phototransistorwerte-- 229-182
Phototransistorwerte-- 231-200
Phototransistorwerte-- 243-256
Phototransistorwerte-- 297-618
Phototransistorwerte-- 981-975
Hallo Hermann
ich habe dein programm ausprobiert jedoch tritt beim compilieren immer dieser error auf:
> "C:\Asuro_src\Progs\Drei\Test-all.bat"
C:\Asuro_src\Progs\Drei>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=Linie.lst Linie.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > Linie.d; \
[ -s Linie.d ] || rm -f Linie.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=Linie.lst Linie.c -o Linie.o
In file included from ./asuro.h:34,
from Linie.c:25:
c:/winavr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
Linie.c: In function 'main':
Linie.c:58: error: 'LEFT' undeclared (first use in this function)
Linie.c:58: error: (Each undeclared identifier is reported only once
Linie.c:58: error: for each function it appears in.)
Linie.c:58: error: 'RIGHT' undeclared (first use in this function)
Linie.c: In function 'RaceStart':
Linie.c:114: warning: implicit declaration of function 'Msleep'
make: *** [Linie.o] Error 1
> Process Exit Code: 2
was mache ich denn falsch???
mfg
Christian
Hi Chris,
Du brauchst die Lib2.7.
_HP_
hi hermann,
das programm lässt sich kompilieren und auch flashen aber...
die ausgabe im kombiflash wie auch im hypertherminal sieht so aus:ist schon komisch...Code:Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
Phototransi‡‹œ˜‹‡`à987-988
ah ok thx
muss ich dann einfach die alte lib durch die neue ersetzen oder noch was anderes machen???
danke für die schnelle Hilfe
Christian