Bonjour à tous dans le cadre d'un projet d'électronique j'aimerai récupérer des données MIDI sur mon pic afin de créer un synthétiseur.
J'ai 2 semaines pour développer ce projet.
J'ai trouvé un morceau de code sur ce forum que j'ai modifié afin de l'adapter pour mon projet. Je suis débutant en assembleur.
L'idée est dans un premier temps de récupérer une tram de 8 bits et d'allumer les leds du portB.
voici mon code:
Code:#include <p18f4550.inc> org 0x0000 goto prog_init org 0x0004 goto irq_handle ;***************************** ****************************** ****************** ; INTERRUPTION RECEPTION USART * ;***************************** ****************************** ****************** irq_handle: BTFSC PIR1, RCIF goto serial_receive retfie serial_receive: incf Cpt ; compteur de car dans le buffer MOVWF RCREG,W movlw 0xFF movwf PORTB retfie ; fin d'interruption ; Set up USART prog_init: Cpt equ 0x0000 counter1 equ H'0' counter equ H'1' counter2: equ H'1' clrf PORTB clrf TRISB bsf PORTC,RC7; RX is IN MIDI_MESS equ 0x0000 MIDI_MESS1 equ 0x0000 MIDI_MESS2 equ 0x0000 MIDI_MESS3 equ 0x0000 movlw 01h ; 31250 baud for MIDI movwf SPBRG movlw b'00100000' ; async tx 8 bit movwf TXSTA movlw b'10010000' ; async rx 8 bit movwf RCSTA movlw 0x0000 movwf MIDI_MESS movwf MIDI_MESS1 movwf MIDI_MESS2 movwf MIDI_MESS3 movwf Cpt ; Compteur de bytesI ;MOVWF FSR bsf INTCON,GIE ; valider interruptions goto start start: goto irq_handle goto start ; boucler Delay: decfsz counter2 goto Delay decfsz counter goto Delay return end
-----