salut !
C'etait pour dire que je m'attaque à la partie gestion du link et que j'ai essayé de faire une synchronisation des calc en utilisant les fonctions d'AMS.
Le probleme étant que je dois transferer des chars dans un sens puis dans l'autre (echange de l'etat des touches utilisées) au moins 30 fois par seconde. Mais il semble que AMS aime bien prendre son temps pour initialiser le transfert et donc je n'atteins un débit que d'environ 20 chars par seconde avec un envoi dans les deux sens.
Voilà la source du programme de synchro que j'ai fait vite fait :
// (passez 0 slave ou 1 master en param)
// /!\ faut faire reset pour quitter
// ca marche avec 2 VTI en virtual link
#include <tigcclib.h>
unsigned char master;
unsigned char send, recv;
volatile unsigned char recu = 0, timeout;
INT_HANDLER OldIntW = NULL;
INT_HANDLER OldIntR = NULL;
DEFINE_INT_HANDLER (masterWInt) {
ExecuteHandler (OldIntW);
if(recu) {
OSWriteLinkBlock (&send, 1);
recu = 0;
timeout = 0;
}
else {
timeout++;
if (timeout == 255) {printf("E "); recu = 1;}
}
}
DEFINE_INT_HANDLER (masterRInt) {
ExecuteHandler (OldIntR);
if(OSReadLinkBlock (&recv, 1)) {
printf("%d ", recv);
recu = 1;
}
}
DEFINE_INT_HANDLER (slaveRInt) {
ExecuteHandler (OldIntR);
if(OSReadLinkBlock (&recv, 1)) {
printf("%d ", recv);
OSWriteLinkBlock (&send, 1);
}
}
// Main Function
void _main(void)
{
ESI argptr;
clrscr();
InitArgPtr (argptr);
master = (unsigned char)GetIntArg (argptr);
printf("%d\n", master); recv = 0;
if(master) {
send = 14;
recu = 1;
OldIntW = GetIntVec (AUTO_INT_1);
OldIntR = GetIntVec (AUTO_INT_4);
SetIntVec (AUTO_INT_1, masterWInt);
SetIntVec (AUTO_INT_4, masterRInt);
}
else {
send = 42;
OldIntR = GetIntVec (AUTO_INT_4);
SetIntVec (AUTO_INT_4, slaveRInt);
}
for(;;) {
// printf("je fais des trucs\n");
}
}
Apres moultes reflexions j'ai décidé de programmer des petites fonctions qui feraient ce qu'il faut en bas niveau.
en fait il me faut une fonction putchar et une fonction getchar
j'ai essayé deux trois tests avec VTI et ca n'a pas l'air de réagir
Est ce que quelqu'un peut me faire vite fait un petit prog en C qui afficherait les etats des lignes du link et qui permettrait de changer ceux-ci ?
PS : je poste aussi ici (car c'etait déja sur tigen) mais vu que tout le monde ne va pas partout et que j'ai absolument besoin d'aide pour progresser... j'espere que ca ira
merci