Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Bout de code posé là !

Modérateur : Jérémy

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1636
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#1 Message par F6FCO » mar. 14 mai 2024 19:10

Hello World sur B1

Code : Tout sélectionner

;************************************************************************************************
;                       
F6FCO 
;                  Hello World
;                       28 oct 2023    
;
;                                        

        
Errorlevel-302                 Supprime le message "Ensure that bank bits are correct" 

        
list            p=18f2620        processeur utilisé 
        
#include        <p18f2620.inc>        ; Définitions des constantes PIC
    

 
CONFIG OSC INTIO67                         Oscillateur interne 8MHz 
 CONFIG IESO 
OFF                            Délai au démarrage (ON/OFF)
 
CONFIG BOREN OFF                           Reset si chute de tension (ON/OFF)
 
CONFIG PWRT ON                              Délai au démarrage (ON/OFF)
 
CONFIG BORV 0                              Tension de reset en 1/10ème Volts 
 CONFIG WDT 
OFF                             Mise hors service du watchdog (ON/OFF)
 
CONFIG PBADEN OFF                          PORTB<4:0les broches sont configurées comme E/S numériques lors de la réinitialisation
 CONFIG LPT1OSC 
OFF                         Timer1 configuré pour un fonctionnement plus puissant
 CONFIG MCLRE 
ON                            Mclr configuré comme entrée
 CONFIG STVREN 
ON                           Reset sur débordement de pile (ON/OFF)
 
CONFIG LVP OFF                             Programmation basse tension autorisée (ON/OFF)
 
CONFIG XINST OFF                           L'extension du jeu d'instructions et le mode d'adressage indexé sont désactivés(mode hérité)
 CONFIG DEBUG = OFF                           ; Debugger hors service
 CONFIG CP0 = OFF                             ; Code protection sur block 0 (ON/OFF)
 CONFIG CP1 = OFF                             ; Code protection sur block 1 (ON/OFF)
 CONFIG CP2 = OFF                             ; Code protection sur block 2 (ON/OFF)
 CONFIG CPB = OFF                             ; Code protection sur bootblock  (ON/OFF)
 CONFIG CPD = OFF                             ; Code protection sur eeprom (ON/OFF)
 CONFIG WRT0 = OFF                            ; Protection écriture block 0 (ON/OFF)
 CONFIG WRT1 = OFF                            ; Protection écriture block 1 (ON/OFF)
 CONFIG WRT2 = OFF                            ; Protection écriture block 2 (ON/OFF)
 CONFIG WRTB = OFF                            ; Protection écriture bootblock (ON/OFF)
 CONFIG WRTC = OFF                            ; Protection écriture configurations (ON/OFF)
 CONFIG WRTD = OFF                            ; Protection écriture zone eeprom (ON/OFF)
 CONFIG EBTR0 = OFF                           ; Protection lecture de table block 0 (ON/OFF)
 CONFIG EBTR1 = OFF                           ; Protection lecture de table block 1 (ON/OFF)
 CONFIG EBTR2 = OFF                           ; Protection lecture de table block 2 (ON/OFF)
 CONFIG EBTRB = OFF                           ; Protection lecture de table bootblock (ON/OFF)

MasqueIntcon    EQU    H'
00A0'     ; réglage interruptions Timer0


     CBLOCK H'
0
     ;--------------- variables 
    Reg_1            :1    ; tempo
    Reg_2            :1    ; tempo
    Reg_3            :1    ; tempo
    conchita        :2    ; variable bonne à tout faire
    LcdLigne        :1    ; LCD
    LcdColonne        :1    ; LCD
    w_temp             :1    ; Sauvegarde du registre W
    status_temp         : 1    ; Sauvegarde du registre STATUS
    cmpt             : 1            
    ENDC

    org     0x000             ; Adresse de départ après reset
      bra    init            ; Adresse 0: initialiser

; ------------------------  Routines Interruptions                            
    ;sauvegarder registres    
    org     0x008            ; adresse d'
interruption
    movwf   w_temp          
sauver registre W
    swapf    STATUS
,w        swap status avec résultat dans w
    movwf    status_temp        
sauver status swappé

    
Interrupt TIMER0
    btfsc    INTCON
,TMR0IE        interrupt timer autorisée ?
    
btfss    INTCON,TMR0IF        si ouitester si interrupt timer en cours
    bra     restorereg
    call    inttimer        
vers routine interrupt timer
    bcf    INTCON
,TMR0IF        effacer flag interrupt timer

    
    
;restaurer registres
restorereg
    swapf    status_temp
,w        swap ancien statusrésultat dans w
    movwf   STATUS            
restaurer status
    swapf   w_temp
,f        Inversion L et H de l'ancien W
                                   ; sans modifier Z
    swapf   w_temp,w          ; Réinversion de L et H dans W
                    ; W restauré sans modifier status
    retfie              ; return from interrupt

    ;  Routine d'
interruption TIMER 0                            
inttimer
    decfsz    cmpt
,f            décrémenter compteur de passages
    
return                ; pas 0on ne fait rien
    movlw    
b'00000010'        sélectionner bit à inverser
    xorwf    PORTB 
f        inverser LED
    movlw    d
'7'            on recommence à décompter
    movwf    cmpt            
    
return                ; fin d'interruption timer
    
; ------------------------ Init

init
    clrf    PORTA            
    clrf    PORTB            
    clrf    EEADR            ; diminue la consommation
    movlw    h'
C7'            ; Timer0 interne avec prescaler 256        
    movwf    T0CON        
        movlw     0Fh
          movwf     ADCON1                ; mode digital
    movlw    b'
00000000'
    movwf    TRISA
    movwf    TRISB

    movlw    MasqueIntcon        ; masque interruption
    movwf    INTCON            ; charger interrupt control

    movlw    d'
7'            
    movwf    cmpt            

; -----------------------------------
main

    nop
    bra     main            

    END                

Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
satinas
Expert
Expert
Messages : 1239
Enregistré en : novembre 2015

#2 Message par satinas » mar. 14 mai 2024 19:29

Attention, tes tabulations ne passent pas sur le site. Il faut sauvegarder ton fichier source en remplaçant les tabulations par des espaces lors du stockage des fichiers.
On peut faire ça avec tous les éditeurs de texte, j'utilise Notepad++ -> menu Edit/Blank Operations/TAB To Space puis File/Save.
On peut le faire aussi dans les properties MPLAB (insert spaces), mais il faut le faire pour chaque fichier, il y a peut être un moyen de le mettre par défaut, je n'ai pas trouvé.

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1636
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » mar. 14 mai 2024 20:24

Pfuuuu ! trop long à faire, je laisse ce soin à ceux qui voudront utiliser les routines.

Mais chez moi c'est nickel, je crois me rappeler que Bigonoff parle quelque part d'un réglage de MPLAB pour adapter le code avec ses tabulation, doit être bien caché dans les menus.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
satinas
Expert
Expert
Messages : 1239
Enregistré en : novembre 2015

#4 Message par satinas » mar. 14 mai 2024 20:34

Fais le au moins pour les prochains, dans MPLAB "Edit/Properties/ASM file types/Insert Spaces" pour chaque fichier.
Autre solution, mettre la même largeur de tabulation MPLAB que celle du site, je ne la connais pas, je préfère mettre des espaces, cela règle le problème définitivement. Si tu publies, faut aussi se mettre à la place du lecteur :-)

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1636
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#5 Message par F6FCO » mar. 14 mai 2024 22:57

AHHHAAAAA !!! Big Brother voit tout :twisted:
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1636
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#6 Message par F6FCO » ven. 17 mai 2024 23:33

Mince, cette réponse n'est pas dans le bon sujet. C'était pour répondre à Gérard :wink:
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1725
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#7 Message par Gérard » sam. 18 mai 2024 20:25

F6FCO a écrit :Mince, cette réponse n'est pas dans le bon sujet. C'était pour répondre à Gérard :wink:


Et c'est dans quelle discussion?

F6 : calme et repos sont recommandés.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

ASM: Hello World avec Timer0 mode 8bis sur 18F2620
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1636
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#8 Message par F6FCO » mar. 21 mai 2024 13:03

Je ne sais plus, je perds les pédales en ce moment :roll:
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:


Retourner vers « Recueil de mini programmes »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités