http://cgrosse1.free.fr/guppy/
Controle de bas niveau de l'interface |
procedure out(add : integer;dat : byte); |
OUT transfère un octet de donné DAT vers le port de sortie ADD : ADD : Adresse du port de sortie entre 0 et 65535 DAT : La donné a écrire sur le port entre 0 et 255 |
function inp(add : integer):byte; |
INP permet de lire l'octet présent sur le port ADD : ADD : Adresse du port à lire entre 0 et 65535 |
procedure clear_i2c_error; |
Clear_i2c_error efface le Flag d'erreur. A Utiliser avant toute instruction controlant le BUS I2C et si l'on veut controler les erreurs de communication sur le bus. : ( Aucun Paramêtre ) |
function i2c_error:boolean; |
I2c_error permet de tester l'état du flag d'erreur. Cette fonction s'utilise conjointement avec Clear_i2c_error : La fonction renvoie TRUE si une erreur c'est produite sur le bus I2C La fonction renvoie FALSE si aucune erreur ne c'est produite. |
procedure port_lpt(numero : byte); |
Port_lpt permet de choisir le N° du port parallèle sur lequel est conectée l'interface : numero : N° du port parallèle utilisé , 1 ou 2 |
procedure set_tempo(t : integer); |
Set_tempo effectue le réglage des boucles de temporisation utilisées pour générer les impulsions sur le bus I2C : t : La valeur fixant le "tempo" entre 0 et 65535 Remarque : Initialement cette valeur vaut 800, ce qui convient parfaitement pour un Pentium 100 et tout ordinateur moins rapide. Pour un ordinateur plus rapide, il convient d'augmenter cette valeur. Une procedure de calibration automatique devrait voir le jour ... |
procedure init_i2c; |
Init_i2c met le bus i2c dans "l'état de repos" ( Lignes SDA et SCL relaxées ) : ( Aucun paramêtre ) : |
procedure start; |
Start envoie une "condition de start" sur le bus I2C afin que l'ordinateur en prenne le controle : ( Aucun paramêtre ) |
procedure stop; |
Stop envoie une "condition de stop" sur le bus I2C avant de le remetre au repos : ( Auncun paramêtre ) |
procedure ack; |
Ack envoie une condition d'acquitement en même temps qu'un Top d'horloge : ( Auncun paramêtre ) |
procedure sans_ack; |
Sans_ack envoie un top d'horloge sans condition d'acquitement : ( Aucun paramêtre ) |
procedure sortie(valeur : byte); |
Sortie envoie un octet valeur sur le bus I2C avec un test de la condition d'acquitement à la fin de la transmission : Valeur : La valeur a envoyer sur le bus entre 0 et 255 |
procedure sortie_ack(valeur : byte); |
Sortie_ack envoie un octet valeur sur le bus I2C sans faire de test d'acquitement : Valeur : La valeur a envoyer sur le bus entre 0 et 255 |
function Lecture:byte; |
Lecture reçoit un octet provenant du bus i2c : La fonction renvoie l'octet reçu. |
Controle du module 16 i/o numériques |
procedure set_num_add(numero : integer); |
Set_num_add configure l'adresse du module I/O auquel l'on veut accéder. Cette procédure doit être appelée au moins un fois avant de pouvoir écrire ou lire une donnée sur un des modules : Numero : Adresse du module I/O entre 32 et 39 |
procedure sortie_num(valeur : byte); |
Sortie_num envoie un octet valeur sur le port de sortie d'un module I/O dont l'adresse a été spécifier avec la procédure Set_num_add : Valeur : La valeur a envoyer sur un module I/O comprise entre 0 et 255 |
function entree_num : byte; |
Entree_num lit la valeur présente sur le port d'un module I/O dont l'adresse a été spécifié par Set_num_add : La fonction renvoie la valeur lu. |
Controle du module Récepteur infrarouge RC5 |
function telecommande : byte; |
Telecommande Scrute le module de réception RC5 et analyse la réponse : La fonction renvoie 255 si aucune touche de la télécommande n'a été pressée Sinon la fonction renvoie le N° de la touche qui a été activée. Pour exemple, voici les codes reçus pour une télécommande de chez Selectronic : ![]() 0 : {La touche 0} 1 : {La touche 1} 2 : {La touche 2} 3 : {La touche 3} 4 : {La touche 4} 5 : {La touche 5} 6 : {La touche 6} 7 : {La touche 7} 8 : {La touche 8} 9 : {La touche 9} 10 : {La touche ./..} 12 : {La touche On/off} 56 : {La touche VCR} 33 : {La touche <} 32 : {La touche >} 20 : {La touche Contraste +} 18 : {La touche Luminosité +} 28 : {La touche Couleur +} 21 : {La touche Contraste -} 19 : {La touche Luminosité -} 29 : {La touche Couleur -} 22 : {La touche Graves +} 24 : {La touche Aigues +} 16 : {La touche Son +} 23 : {La touche Graves -} 25 : {La touche Aigues -} 17 : {La touche Son -} 13 : {La touche Speaker on/off} 27 : {La touche Left speaker on/off} 26 : {La touche Right speaker on/off} |
Controle des modules I2C à base de PIC16C84 |
procedure sortie_PIC(add,commande,donnee : byte) |
Sortie_PIC, routine de bas niveau permet d'envoyer une commande à un module à base de PIC16C84 Add : adresse du module entre 24 et 31 Commande : N° de la function sollicitée entre 0 et 7 Donnee : Un octet de donnée transmis au PIC |
function entree_PIC(add,commande : byte) : byte; |
Entree_PIC permet de lire un des registres du PIC16C84 Add : adresse du module entre 24 et 31 Commande : N° du registre à lire entre 0 et 7 La fonction renvoie la valeur contenue dans le registre. |
function get_id(add : byte) : string; |
Get_id permet de lire la chaine d'identification d'un module Add : adresse du module entre 24 et 31 Commande : N° du registre à lire entre 0 et 7 La fonction renvoie la chaine d'identification du module sous la forme d'une chaine de 8 caractêres ( Les 5 premiers pour le nom de l'application et les 3 suivants pour le numéro de version ). |
procedure set_register(add,no,dat : byte) |
Set_register initialise la valeur d'un registre du PIC Add : adresse du module entre 24 et 31 No : N° du registre à modifier entre 0 et 7 Dat : La valeur a stocker dans le registre |
procedure set_all(add,dat : byte) |
Set_all initialise tous les registres du PIC avec une valeur Add : adresse du module entre 24 et 31 Dat : La valeur a stocker dans tous les registres |
procedure save_register(add,no : byte) |
Save_register sauve le contenu d'un registre du PIC dans l'EEPROM ( Mémoire non volatile ) Add : adresse du module entre 24 et 31 No : N° du registre à sauvegarder entre 0 et 7 |
procedure save_all(add : byte) |
Save_all sauve tous les registres du PIC en EEPROM ( Mémoire non volatile ) Add : adresse du module entre 24 et 31 |
procedure restore_register(add,no : byte) |
restore_register restaure le contenu d'un registre à partir de celui de l'EEPROM Add : adresse du module entre 24 et 31 No : N° du registre à restaurer |
procedure restore_all(add : byte) |
Restore_all restaure tous les registres du PIC a partir de celui de l'EEPROM Add : adresse du module entre 24 et 31 |
procedure auto_load(add : byte) |
Auto_load force la restauration automatique du contenu de tous les registres a partir de celui de L'EEPROM lors du POWER ON RESET du module Add : adresse du module entre 24 et 31 |
procedure no_auto_load(add : byte) |
No_auto_load désactive la restauration automatique des registres a partir du contenu de l'EEPROM lors du POWER ON RESET du module Add : adresse du module entre 24 et 31 |
Controle du module LCD |
procedure set_lcd_add(numero : integer) |
Set_lcd_add sélectionne l'adresse du module LCD Numero : adresse du module entre 24 et 31 |
procedure set_lcd_tempo(tempo : integer) |
Set_lcd_tempo permet de fixer la durée des temporisations pour l'affichage.Par défaut, tempo vaut 100 ms. Tempo : Durée de la temporisation en ms |
procedure lcd_write_char(carac : char) |
Lcd_write_char affiche un caractêre sur l'écran LCD Carac : Caractêre a afficher |
procedure lcd_screen_off; |
Lcd_screen_off Etteint l'afficheur LCD ( sans effacer sa mémoire ) |
procedure lcd_screen_on; |
Lcd_screen_on Allume l'écran LCD |
procedure lcd_clear_screen; |
Lcd_clear_screen efface l'écran LCD et ramène le curseur au début de la ligne |
procedure lcd_home; |
Lcd_home ramène le curseur au début de la ligne |
procedure lcd_cursor_left; |
Lcd_cursor_left déplace le curseur d'un cran vers la gauche |
procedure lcd_cursor_right |
Lcd_cursor_right déplace le curseur d'un cran vers la droite |
procedure lcd_write_string(s : string) |
Lcd_write_string Efface l'écran puis affiche une chaine de caractêre S : La chaine de caractêre a afficher |
Dernière mise a jour le 21.02.99 |
![]() |
Une chaine Hifi avec Télécommande infrarouge ! |