Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.
Bei einer Baudrate von 230400 dauert die Übertragung eines Zeichens etwa 43 µs. Eine Abtastung des Signals alle 10µs funktioniert desshalb nicht.
Ausserdem sollte man, um die Abtastrate auch wirklich genau einzuhalten, die IRQs deaktivieren. Die Tastaturabfrage und waitus() funktionieren dann allerdings nicht mehr.
void RF_viewer_6_10_senden(void) {
unsigned int i=1;
char replay[]="000000000000000000000000000000000000001111000011111000011000000001100000000011111110000001111111110000000001111110000000111111100000011111111100000000011111110000111001111100001111111111100000000000111111111110000000000011111110000000011111110000000111111100000011111111100000000000111111111000000000111111111000000001111111110000000001111111110000000011110000111111111001";
//Die Daten der Variable replay wurden hier stark gekürzt. Bei mir sind es insgesamt 19700 Nullen und Einsen
lcd_fill(0);
set_font(BOLDFONT);
draw_string(0, 0, "RF viewer-senden", 3, DRAW_PUT);
draw_block(0,10,128,2,3,DRAW_PUT);
set_font(SMALLFONT);
RFasyncmode_6(true);
cc1100_write1(AGCCTRL2,0x03);
cc1100_write1(AGCCTRL1,0x00);
cc1100_write1(AGCCTRL0,0x92);
cc1100_strobe(STX);
serial_init(); //baud 230400
while(KEY_Exit) {};
for (i=1;i<19700;i++)
{
waitus(10);
if(replay[i]=='0')
{
FIOCLR0 = GDO0; //Kein Signal wird gesendet - Low
} else {
FIOSET0 = GDO0; //Signal wird gesendet - High
}
}
RFasyncmode_6(false);
}
void RF_viewer_6_10(void) {
unsigned char row = 0;
unsigned char col = 16;
lcd_fill(0);
set_font(BOLDFONT);
draw_string(0, 0, "RF viewer-sniffen", 3, DRAW_PUT);
draw_block(0,10,128,2,3,DRAW_PUT);
set_font(SMALLFONT);
RFasyncmode_6(true);
cc1100_write1(AGCCTRL2,0x03);
cc1100_write1(AGCCTRL1,0x00);
cc1100_write1(AGCCTRL0,0x92);
cc1100_strobe(SFRX);
cc1100_strobe(SRX);
serial_init(); //baud 230400
while(KEY_Exit) {};
while(!KEY_Exit)
{
waitus(10);
if((FIOPIN0 & GDO2))
{
serial_putc('0'); //Low
} else {
serial_putc('1'); //High
}
}
RFasyncmode_6(false);
}
Standardbibliotheken werden nicht mit Anführungszeichen eingebunden. Richtig ist:
#include <string.h>
testmenu.c:(.text+0xff4): undefined reference to `strncpy'
testmenu.c:(.text+0x1018): undefined reference to `strncat'
testmenu.c:(.text+0x1044): undefined reference to `strlen'
Kommt da (unsigned char) 0 und 1 oder (ASCII) '0' und '1'? Wenn da 0 und 1 kommt wird das mit Stringfunktionen sowieso nicht funktionieren. (wegen der Nullterminierung von Strings)
Versuch das ganze mal ohne Stringfunktionen zu schreiben. Die sind für dieses Problem nicht notwendig.
testmenu.c:(.text+0xff4): undefined reference to `strncpy'
testmenu.c:(.text+0x1018): undefined reference to `strncat'
testmenu.c:(.text+0x1046): undefined reference to `strnlen'
while (strncmp(serial_getc(),".",1)==1)
{
strncpy(replay, serial_getc(), 1);
}
while(KEY_Exit) {};
for (i=1;i=strlen(replay);i++)
{
strncat(act_char, replay+i, 1);
waitus(50); //Daten wurden mit 50µs Abtastung aufgenommen
//waitus(50);
if(act_char=0)
{
FIOCLR0 = GDO0; //Kein Signal wird gesendet - Low
} else {
FIOSET0 = GDO0; //Signal wird gesendet - High
}
Für den CC1100 kannst du ja mal die Einstellungen von tugstugi http://bettyhacks.com/forum/index.php?topic=223.0 zum sniffen probieren.
ZitatIst in der SCart-Firmware evtl grad ein Fehler drin?
REV14 funktioniert bei mir so wie es soll.
terminal = 1;
redirector = 1;
len =0;
while (1) {
if(redirector) {
//terminal = 1;
redirector = 1;
len =0;
while (1) {
if(redirector) {
if(inbuflen >= 58) {
if(inbuflen >= 58) {
Z:\XXX\betty_scart\trunk>make
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c main.c
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c serial.c
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c cc1100.c
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c cmd.c
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c rf.c
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 -c timer.c
Linking main.rel serial.rel cc1100.rel cmd.rel rf.rel timer.rel
C:/SDCC/bin/sdcc --iram-size 0x100 --model-small --code-size 8096 -IC:/SDCC/incl
ude --std-sdcc99 main.rel serial.rel cc1100.rel cmd.rel rf.rel timer.rel -o bett
y_scart.ihx
Multiple definition of _crlf
Multiple definition of _crlf
Multiple definition of _crlf
make: *** [betty_scart.ihx] Error 1
Z:\XXX\betty_scart\trunk>make
C:/SDCC/bin/packihx betty_scart.ihx > betty_scart.hex
packihx: read 440 lines, wrote 239: OK.
cat betty_scart.hex | C:/SDCC/bin/makebin -s 8096 > betty_scart.bin
Ein S oder ein s? Und nur ein s oder ein s + Eingabetaste? Allerdings sollte er auch auf ein S (mit Eingabetaste) mit Syntax error antworten.