Bonjour à tous, je suis en train de programmer un microcontroleur C167 de chez SIEMENS en assembleur avec le logiciel µvision.
Dans le cadre de ce projet je suis obligé de programmer avec des interruptions, j'ai commencé une bonne partie de ce programmer et lorsque je le test avec le simulateur tout ce passe correctement mais au moment de le tester sur la maquette la c'est le drame et les interruptions ne fonctionnent pas alors que le reste du programme fonctionne correctement.

Quelle est la raison de ce dysfonctionnement ? Est-ce materiel ? Ou cela vient il du programme ?

Pour info voici le programme :
NAME Module_1
$INCLUDE (REG167.INC)
ASSUME DPP3:system,DPP0:donnees

donnees SECTION DATA

Liste DSW 9
Mesures DSW 9

donnees ENDS

prog SECTION CODE

main PROC
GLOBAL main

MOV DP2,#0x0000
MOV P3,#0x0000
MOV DP3,#0xFFFF

MOV CCM0,#0x2111
MOV CCM1,#0x0011
MOV CC0IC,#0x0044
MOV CC1IC,#0x0044
MOV CC2IC,#0x0044
MOV CC3IC,#0x0044
MOV CC4IC,#0x0044
MOV CC5IC,#0x0044
AND PSW,#0x0FFF ; forcer à 0 les 4 bits ILVL
OR PSW,#0x0800 ; forcer à 1 le Interrupt Enable

MOV R0,#liste
MOV R1,#Mesures

fin:
JMP cc_UC,fin

main ENDP

Rentree_Verin PROC INTERRUPT CC3INT=13h

MOV CC2IC,#0x0044
ADD R0,#2
BSET P3.0

RETI
Rentree_Verin ENDP

Verin_Rentre PROC INTERRUPT CC0INT=10h

BCLR P3.0

RETI
Verin_Rentre ENDP

Sortie_Verin PROC INTERRUPT CC2INT=12h

MOV CC2IC,#0x0004
MOV R2,#0x1000
CALL DELAI
MOV R3,#0x0000
MOV [R0],R3
BSET P3.1

RETI
Sortie_Verin ENDP

Verin_Sortie PROC INTERRUPT CC1INT=11h

BCLR P3.1

RETI
Verin_Sortie ENDP

Piece_Noire PROC INTERRUPT CC4INT=14h

MOV R3,#0x00FF
MOV [R0],R3

RETI
Piece_Noire ENDP

Piece_Metallique PROC INTERRUPT CC5INT=15h

MOV R3,#0xFFFF
MOV [R0],R3

RETI
Piece_Metallique ENDP

DELAI PROC

MOV T3CON,#0x0086
MOV T3,R2
BSET T3R
attente_delai:
JNB T3OTL,attente_delai
BCLR T3R

RET

DELAI ENDP


prog ENDS
END