Bonjour,
Je viens de débuter en programmation assembleur. Serait il possible de vérifier ce code ?
J'ai réalisé la carte électronique et souhaite tester ce code dessus (pour PIC10f20). Je rencontre des difficultés lorsque je compile sur MplabX, de nombreux messages d'erreurs s'affichent.
"newAsmTemplate.asm:6: error: (141) can't open include file "p10f220.inc": No such file or directory"
"nbproject/Makefile-default.mk:112: recipe for target 'build/default/production/newAsmTemplate.obj' failed"
Je vous remercie pour votre aide.Code:; Sélection du PIC #ifdef __10F220 list p=10F220 , r = DEC #include "p10f220.inc" #endif ; Configuration __config _CP_OFF & _MCLRE_ON & _IOFSCS_4MHZ & _MCPU_ON & _WDT_OFF ; Affectation des variables locales ; Vin ADCdec ADChex k1 equ .134 ; 10.5V -> 134 -> 86h k2 equ .146 ; 11.5V -> 146 -> 92h k3 equ .153 ; 12V -> 153 -> 99h k4 equ .184 ; 14,5 -> 184 -> B8h ;Définition des ports #define LEDR sGPIO,GP1 ; LED Rouge #define LEDV sGPIO,GP2 ; LED Verte ;#define GPIO,GP0 ; AN0 ;#define GPIO,GP3 ; ; Mémoire RAM CBLOCK 0x10 ; RAM de 0x10 à 0x1F sGPIO d1 ; Compteur tempo d2 ; MACRO local EXEC MACRO movf sGPIO, W movwf GPIO ENDM ; LED vert allumé Vert_on MACRO bsf LEDV ENDM ; LED rouge allumé Rouge_on MACRO bsf LEDR ENDM ; LED vert éteint Vert_off MACRO bcf LEDV ENDM ; LED rouge éteinte Rouge_off MACRO bcf LEDR ENDM ; LED rouge clignote Rouge_tg MACRO movlw b'00010' xorwf sGPIO, f ENDM ; LED verte clignote Vert_tg MACRO movlw b'00100' xorwf sGPIO, f ENDM PAGE ; Sécurité pour la valeur d'étalonnage RCCAL ORG 0x1FF res 1 ; Réinitialisation du vecteur ORG 0x00 ; Calibration oscillateur interne andlw 0xFE movwf OSCCAL MAIN: ; initialisation I/O movlw b'11010111' OPTION ; ADCON0 default '11001100' movlw b'01000001' movwf ADCON0 ; GPIO clrf GPIO movlw b'1001' tris GPIO ;---------------------------------------------------------- ;--------------------- Programme principal ---------------- ;---------------------------------------------------------- Vert_off ; LED éteinte Rouge_off EXEC movf sGPIO,w movwf d3 ml call ReadAD ; lire ADC movlw k1 ; < k1? subwf ADRES, w skpc goto sel1 n1 movlw k2 ; < k2? subwf ADRES, w skpc goto sel2 n2 movlw k3 ; < k3? subwf ADRES, w skpc goto sel3 n3 movlw k4 ; < k4? subwf ADRES, w skpc goto sel4 n4 goto sel5 ; > k4? ; LED driving sel1: Vert_off Rouge_tg goto selxec sel2: Vert_off Rouge_on goto selxec sel3: Vert_on Rouge_on goto selxec sel4: Rouge_off Vert_on goto selxec sel5: btfss sGPIO,GP1 goto a1 btfss sGPIO,GP2 goto lamp goto adj a1 btfsc sGPIO, GP2 goto lamp adj: Rouge_on Vert_off lamp: Vert_tg Rouge_tg selxec EXEC call Delay025s goto ml ReadAD bsf ADCON0, 1 ; start conversion loopADC nop btfsc ADCON0, 1 ; wait for DONE goto loopADC retlw 0 ; Delay = 0.25 seconds ; Clock frequency = 4 MHz ; 0.25 seconds = 250000 cycles Delay025s ;249993 cycles movlw 0x4E movwf d1 movlw 0xC4 movwf d2 Delay025s_0 decfsz d1, f goto $+2 decfsz d2, f goto Delay025s_0 goto $+1 ;3 cycles nop retlw 0 ;4 cycles (including call) END
-----