vince a écrit :
demandes à squalyl²
Ou a moi

!
Surtout que squalyl^2 s'occupe plutot de l'electronique autour des PICs ...
rruptions ?)
; - entre le label Int_Tmr0 et le point B
[...]
bcf IntCon, Tmr0IF
retfie
Programme (a adapter, evidemment) pour compter 1s tout en laissant le reste du programme tourner pendant ce temps la :; instruction 0x000 (Reset Vector)
goto Debut ; a cause de l'Interrupt Vector en 0x004
retlw 'X' ; remplissage des instructions 0x001 a 0x003 avec 'XYZ'
retlw 'Y' ; j'utilise ca comme signature, avec 'PGR' comme 'PG Robotik'
retlw 'Z' ; avec 3 nop, ca marche aussi, mais c'est moins subtil #roll#
; instruction 0x004 (Interrupt Vector)
; le signal d'interruption s'est declenche il y a 3 Tcy ...
btfsc IntCon, Tmr0IF ; verification si c'est bien Tmr0 qui a declenche
goto Int_Tmr0 ; c'est bien lui ...
; on arrive au label Int_Tmr0 dans 1 Tcy !
[...] ; autres interruptions ?
retfie
; quelques initialisations de debut de programme
movlw 1x0xx0xxb ; valeurs x au choix, mais je ne sais plus comment ecrire une valeur binaire
movwf IntCon
bsf Status, RP0 ; selection de la Bank 1 ou 3
movlw xx010000b ; valeurs x au choix
movwf Option
; en profiter pour initialiser TrisA (seulement si Bank 1) et TrisB (Bank 1 ou 3)
bcf Status, RP0 ; retour en Bank 0 ou 2
; suite du programme : ne plus toucher aux bits affectes ci-dessus
; seul le bit 7 de IntCon (GIE) peut etre modifie si besoin est
[...]
; point A, le compte a rebours commence ici !
call _Compte_1s
[...] ; suite du programme, executee tant que 1s n'est pas passee
_Compte_1s:
; deja 2 Tcy d'ecoules ...
bcf Status, RP0 ; selection de la Bank 0 ou 2, au cas ou ...
movlw 12 ; valeur en decimal !!! verifier le reglage du compilo ...
movwf Tmr0 ; rappel : reset du prescaler (1:2), 2 Tcy de temps mort
; debut du temps mort
bsf Status, RP0 ; selection de la Bank 1 ou 3
movlw 00000110b ; prescaler a 1:128
; fin du temps mort, prescaler a 1:2, donc increment de Tmr0 dans 2 Tcy :| ...
iorlw Option, f ; ecriture dans Option, juste a temps ;) !
bcf Status, RP0 ; retour en Bank 0 ou 2
bcf IntCon, Tmr0IF ; flag a 0, la seconde est loin d'etre passee ^^
bsf IntCon, Tmr0IE ; autorisation d'interruption au bout d'une seconde
bsf IntCon, GIE ; deblocage des interruptions, au cas ou ...
return
; le decompte du Tmr0 a commence a la fin du temps mort, 7 Tcy apres le point A
; le signal d'interruption se declenchera (256-12)*128=31232 Tcy apres la fin du temps mort
Int_Tmr0:
bcf IntCon, Tmr0IE ; interdiction d'interruption au bout d'une seconde
; point B, le signal d'interruption s'est declenche il y a 7 Tcy
; 7 + 31232 + 7 = 31246 Tcy entre les points A et B !!!
; pour bien faire, il faudrait ajouter 4 instructions (nop ?) soit :
; - entre le point A et le debut du temps mort
; - entre l'Interrupt Vector et la verification de Tmr0IF (check de 2 autres inte

Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.