Exemples
La valeur de N a été chargée préalablement: (N compris entre 1 et 255)
Debut
Sortie
Entre debut et sortie, il y a 3*N-1 cycles machine (3*N-1 microsecondes avec un quartz 4 MHz) soit une temporisation pouvant aller de 2 à 767 microsecondes.
Les valeurs de N et P ont été chargées préalablement (N et P compris entre 1 et 255)
Debut
Sortie
Entre debut et sortie, il y a 3*N+770*P-769 cycles machine (3*N+770*P-769 microsecondes avec un quartz 4 MHz) soit une temporisation pouvant aller de 4 microsecondes à 197 millisecondes
Les valeurs de N P et Q ont été chargées préalablement (N P et Q compris entre 1 et 255)
Debut
Sortie
Entre debut et sortie, il y a 3*N+770*P+197122*Q-197889 cycles machine (3*N+770*P+197122*Q-197889 microsecondes avec un quartz 4 MHz) soit une temporisation pouvant aller de 6 microsecondes à 50 secondes.
Tableaux de grandes dimensions:
Un tableau trop grand pour être stocké en mémoire RAM, ou en EEPROM, peut être stocké à la gravure dans la mémoire programme grâce à des instructions retlw k:
Dans cet exemple le tableau est stocké de h'3f1' à h'3f3' (cases 0, 1 et 2)
debut
movlw h'03'
movwf PCLATH ; pour que le compteur programme soit dans la page h'300'-h'3ff'; le tableau ne doit pas sortir de cette page
movlw h'02' ; pour lire la case 2 du tableau
call Tableau
; au retour de la sous routine, W contient h'33'
;etc
org h'3f0'
Tableau
addwf PCL,F ; met le compteur programme sur la case du tableau désirée (instruction stockée à l'adresse h'3f0')
retlw h'11' ; instruction stockée à l'adresse h'3f1' (case 0 du tableau)
retlw h'22' ; instruction stockée à l'adresse h'3f2' (case 1 du tableau)
retlw h'33' ; instruction stockée à l'adresse h'3f3' (case 2 du tableau)
Retour au sommaire
© 1999-2009 A. Ducros F5AD