Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CA COMMENCE LA
- write ; Ecriture du resultat de la conversion dans le tableau
- MOVF conversion_result, 0
- MOVWF POSTINC0
- RETURN
- result_treatement ; On recupere les 3 bits qui nous interesse : 5 à 7
- RRCF conversion_result ; On decale à droite 4 fois
- RRCF conversion_result
- RRCF conversion_result
- RRCF conversion_result
- MOVLW b'00000111'
- ANDWF conversion_result, 1 ; On fait un "ET" arithmetique pour ne garder que les 3 LSB
- RETURN
- ADC_launcher ; On lance le convertisseur analogique numerique
- MOVLW b'11000001'
- MOVWF ADCON0
- conversion_end ; On surveille le LSB de ADCON0 pour attendre la fin de la conversion
- BTFSC ADCON0, 0
- GOTO conversion_end
- MOVF ADRESH, 0 ; Le resultat est recupere dans ADRESH
- MOVWF conversion_result
- CALL result_treatement ; On traite le resultat pour obtenir 3 bits
- CLRF FSR0L,0 ; On initialise l'adresse du tableau
- MOVLW 0x01
- MOVWF FSR0H, 0
- CALL write ; On ecrit le resultat dans le tableau
- RETURN
- ADC_init_high_pitch ; Initialisation du channel pour les aigues
- CLRF ADPCH
- RETURN
- ADC_init_medium_high ; Initialisation du channel pour les medium hauts
- MOVLW b'00000001'
- MOVWF ADPCH
- RETURN
- ADC_init_medium_bass ; Initialisation du channel pour les medium bas
- MOVLW b'00000010'
- MOVWF ADPCH
- RETURN
- ADC_init_bass ; Initialisation du channel pour les basses
- MOVLW b'00000011'
- MOVWF ADPCH
- RETURN
- lets_convert ; On convertit les 4 signaux un par un
- CALL ADC_init_high_pitch ; d'abord les aigue
- CALL ADC_launcher ; et on lance la conversion
- CALL ADC_init_medium_high ; idem pour medium haut
- CALL ADC_launcher
- CALL ADC_init_medium_bass ; puis medium bas
- CALL ADC_launcher
- CALL ADC_init_bass ; et basse
- CALL ADC_launcher
- START2
- MOVLW b'00000000'
- MOVWF TRISB ; Les leds sont en sorties
- MOVWF conversion_result ; On initialise le resultat de conversion a 0
- CALL lets_convert ; On lance les conversion pour recuperer les 4 signaux
- CALL lets_shine ; On allume les leds
- table ADDWF PCL ; Donne un jauge permettant de savoir a quelle hauteur on allume les leds
- RETLW 0x00
- RETLW 0x01
- RETLW 0x03
- RETLW 0x07
- RETLW 0x0F
- RETLW 0x1F
- RETLW 0x3F
- RETLW 0x7F
- RETLW 0xFF
- GOTO $ ; boucle infinie
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement