Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Il me restait à effectuer le test de la carte d'entrée connectée sur le bus I2C. La carte fonctionne . Ensuite j'ai optimisé le code programme du PIC . En effet , il y avait quelques bugs.

 

Le code programme optimisé qui concerne la lecture du bus I2C.

procedure PCF8574_Read(x:byte);

begin

  old_values_i2c[x]:=Values_I2C[x];

  I2C1_Start;                     // signal START

  I2C1_Wr(cPCF8574_R0+(x*2));     // addresse PCF8574

  Values := I2C1_Rd(0);           // lecture données

  Values_i2c[x]:=255-Values;      // inversion des donnees

  bytetostr(values_i2c[x],txt_ch1);

  if (n_page=1) and (k=x) then  LCD_Out(2,8,txt_ch1);

  // actualisation des données vers le pc si la valeur change

  if (old_values_i2c[x]<> values_I2C[x]) then envoi_i2c(x,values_i2c[x]);

  I2C1_Stop;                      // signal STOP

  delay_ms(30);

end;

 

A chaque changement d'état logique d'une entrée , j'envoie une trame vers le PC via la liaison RS232 sous la forme de : I00A01T

  • I : Pour indiquer que c'est un message concernant les entrées.
  • 00 : Pour le numéro de carte à l'adresse 00.
  • A : pour faire une séparation entre le numéro d'adresse et l'état des entrées.
  • 01 : Etat des 8 entrées (Entrées 0 à Entrées 7)/
  • T: Pour terminer le message.

 

 

8225

Le programme utilisateur lui aussi à évolué. J'ai crée une page pour lire l'état logique des 64 entrées. (Je peux en mettre 64 de plus  mais pour le moment , je pense en avoir assez). Voilà maintenant il me reste à créer les différents automatismes , améliorer la partie graphique de mon TCO. Encore quelques weekend pluvieux et le programme sera bientôt fini !

8226

Tag(s) : #Projet pilotage niveau 1