|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 1999
Messaggi: 251
|
PIC vs Seriale (C++ & Linux)
Ciao,
devo interfacciare un software scritto in c++ con un PIC (68HC11 Motorola), ciò che mi serve è : 1) una funzione che apra e chiuda il collegamento seriale 2) una funzione che io possa manipolare ma sia già predisposta per un trasferimento di pacchetti (magari fread, fwrite) sulla porta seriale. Avete qualche consiglio o qualche buona riga di codice da passarmi please ?? Il problema è che il software va sviluppato x girare su Linux e quindi alcune librerie potrebbero non essere disponibili ![]()
__________________
Il mio "bel volo" What goes in, must comes out (Johnny Noxville) ...e ricordati che prima o poi il po-chi gira (Il Maestro) manahmanah |
![]() |
![]() |
![]() |
#2 | ||||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||||
![]() |
![]() |
![]() |
#3 | |||
Senior Member
Iscritto dal: Dec 1999
Messaggi: 251
|
![]() ![]() Quote:
senza che io abbia a che fare con termios o altro ![]() Quote:
ricevi, controlla checksum, accetta e manda alla decodifica Quote:
![]() ![]() Scherzo dai, grazie x l'aiuto...!! ![]()
__________________
Il mio "bel volo" What goes in, must comes out (Johnny Noxville) ...e ricordati che prima o poi il po-chi gira (Il Maestro) manahmanah |
|||
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Esistono in rete classi che fanno buona parte del lavoro, ma ti consiglierei di partire dal link che ti ho postato per capire di cosa si tratta. Una classe puoi quindi farla tu stesso, è banale. Quote:
Se hai mai programmato una seriale sotto windows, esiste questa analogia: open <=> CreateFile close <=> CloseHandle tcgetattr <=> GetCommState tcsetattr <=> SetCommState read <=> ReadFile write <=> WriteFile poll/select, alcune ioctl <=> WaitCommEvent
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 1999
Messaggi: 251
|
Il problema è in effetti che non l'ho mai fatto e non dovrebbe essere parte integrante del mio lavoro,
quindi cercherei di limitare il + possibile le complicazioni ed il codice da scrivere e debuggare ![]()
__________________
Il mio "bel volo" What goes in, must comes out (Johnny Noxville) ...e ricordati che prima o poi il po-chi gira (Il Maestro) manahmanah |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Immagino che almeno ReadFile e WriteFile le hai usate qualche volta
![]() Il settaggio dei parametri con termios è una fesseria; fai delle prove, se hai dei dubbi posso aiutarti. Probabilmente sarà sufficiente disabilitare la modalità canonica (ICANON), impostare CLOCAL, e la velocità che desideri.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 1999
Messaggi: 251
|
Sìsì,
comunque man mano ci smanetto sopra qualcosa di utile succede, il problema principale rimane la gestione asincrona dei pacchetti che arrivano e vanno inviati, esiste un modo standard per farlo ?? La funzione che esegue questo compito dovrebbe secondo te essere chiamata quando ci si attende un pacchetto o dovrebbe essere lei il main del programma in modo da monitorare continuamente la seriale e poi chiamare altre funzioni a seconda del pacchetto che arriva o dei comandi passati dall'utente ?? (spero di essermi spiegato)
__________________
Il mio "bel volo" What goes in, must comes out (Johnny Noxville) ...e ricordati che prima o poi il po-chi gira (Il Maestro) manahmanah |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 1999
Messaggi: 251
|
Nein,
programmo solo in C (e un po' in php) e niente classi quindi robe tipo i socket non dico che non so cosa sono ma è meglio che non m'interroghi profe ![]()
__________________
Il mio "bel volo" What goes in, must comes out (Johnny Noxville) ...e ricordati che prima o poi il po-chi gira (Il Maestro) manahmanah |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:41.