#1 Le 14/01/2009, à 23:07
- slf
Emulation avec le port serie d'une liaison SPI
Bonjour,
Sous MSDOS et QBASIC je pilote directement les lignes de la RS232 afin d'émuler une liaison SPI :
MOSI data out par dtr
Clock par rts
Load par txd
SUB writ
OUT &H3FB, 64 * (1 - txd)
OUT &H3FC, (1 - dtr) + 2 * (1 - rts)
END SUB
Capture (exemple)
OUT &H3FC, 3
WHILE (INP(&H3FE) AND 128) = 0 AND u < r
u = u + 1
WEND
&H3Fx sont les adresses des registres du controleur serie.
Tant que j'avais une version de vb tournant sous windows3.11 j'utilisais avec énormement de confort le serialcontrolbox qui me permettait en sus de gérer directement les évènnements générer par le controleur serie.
Existe t'il un équivalent des instructions INP et OUT avec un exemple pour profane (les adresses sous linux sont elles accessibles et les mêmes ?) : un paquet tout compris marchant sans grande connaissance et modifiable à souhait ?
Ou mieux existe t'il un équivalent du serialcontrolbox du vb windows3.11 de ma jeunesse (avec exemple) ?
NB : mes connaissances du C sont limitées
Dernière modification par slf (Le 14/01/2009, à 23:34)
Hors ligne
#2 Le 15/01/2009, à 03:29
- idcpif
Re : Emulation avec le port serie d'une liaison SPI
Bonsoir,
je pense qu'il va falloir se mettre un peu au c.
http://www.eng.auburn.edu/~doug/serial.html
...et s'inspirer de upsprobe pour changer l etat d'une ligne et upstart pour lire.
http://www.pier-infor.eu
Hors ligne
#3 Le 15/01/2009, à 18:34
- slf
Re : Emulation avec le port serie d'une liaison SPI
Merci, cela devrait faire l'affaire.
Existe t'il un tutoriel trés simple indiquant step à step ce que l'on fait pour obtenir un executable a partir d'un *.c sous ubuntu ?
Mon problème avec c est surtout là et je devrai arriver à décoller cet épineux problème résolu.
Autre question si ce n'est pas trop long : comment lancer une routine ou un executable a partir de l'interuption du port serie (j'utilise un délais entre une écriture sur le port et le changement d'état de DCD pour faire de la conversion analogique numérique)
Hors ligne
#4 Le 16/05/2009, à 14:19
- slf
Re : Emulation avec le port serie d'une liaison SPI
inb(0x2fe) : equivalent à la fonction INP(&H2FE)
outb(int,0x2fc) : equivalent à l'instruction OUTP(&H2FC,int)
mais faire ioperm(0x2f8, 8, 1) pour autoriser le programme à ecrire sur les ports 0x2f8 à 0x2ff en début de programme
mes includes (pas tous indispensables)
#include <sys/io.h>
#include <stdio.h>
#include <sys/time.h>
#include <termio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <sys/signal.h>
#include <sys/resource.h>
#include <time.h>
#include <stdlib.h>
Hors ligne