[archimedes] PiSerial aus C ?

  • From: Joerg Niggemeyer <beagle@xxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Fri, 24 Feb 2017 16:08:54 GMT

Hallo,

hat jemand Tanks PiSerial driver schonmal probiert aus
C heraus anzusprechen?



Rick's b.log - entry 2014/06/20: Zitat::


Therefore, start up the module, then do this in your program (or the 
equivalent in your preferred language) before you want to send data:

SYS "PiSerial_ResetUART"
SYS "PiSerial_Speed",,115200
SYS "PiSerial_Format",,%10000This will reset the serial port, then 
specify 8N1 at 115.2kbps. These ought to be the defaults, but we'll 
say it just to be sure.

Then, sending data is a matter of doing the following (assuming 
buffer% has been DIM'd somewhere prior):

$buffer% = "This is a test!"+CHR$(13)+CHR$(10)
SYS "PiSerial_TX",,buffer%,LEN($buffer%)+2


Ich habe mir dann die Nummern der SWIs der Module besorgt, um
die dann direkt per Nummer aus C aus aufzurufen.

DIM text% 100
    $text% = "PiSerial_TX"+CHR$(0)
    SYS"OS_SWINumberFromString",,text% TO number%
    PRINT number%


_kernel_oserror *error;

_kernel_swi_regs regs;
//regs.r[0] = (int) 310;
//regs.r[1] = (int) 0x4b534154;
//regs.r[2] = (int) "Wimp Task";
//regs.r[3] = (int) 0;
//error = _kernel_swi(Wimp_Initialise, &regs, &regs);


regs.r[0] = (int) 0;
regs.r[1] = (int) 0;
regs.r[2] = (int) 0;
regs.r[3] = (int) 0;
error = _kernel_swi(365502, &regs, &regs); //PiSerial_ResetUART


regs.r[0] = (int) 0;
regs.r[1] = (int) 0;
regs.r[2] = (int) 115200;
regs.r[3] = (int) 0;
error = _kernel_swi(365568, &regs, &regs); //PiSerial_Speed


regs.r[0] = (int) 0;
regs.r[1] = (int) 0;
regs.r[2] = (int) 16;//%10000 8N1
regs.r[3] = (int) 0;
error = _kernel_swi(365569, &regs, &regs); //PiSerial_Format


regs.r[0] = (int) 0;
regs.r[1] = (int) 0;
regs.r[2] = (int) "Hallo Welt   ";
regs.r[3] = (int) 5;
error = _kernel_swi(365571, &regs, &regs); //PiSerial_TX


Es compiliert, führt aber zu einem total Absturz, wenn man es 
ausführt.

Natürlich würde ich es schoen finden, wenn man auch aus C heraus
die seriellen Pins vom Pi aus ansprechen koennte, war die Idee
es so zu probieren richtig, oder habe ich etwas falsch gemacht, bzw.
geht es überhaupt?

Für Kommentare wäre ich dankbar, Gruesse

Joerg




-- 
Joerg Niggemeyer on RISCOS Raspberry Pi


Other related posts: