JAL (compiler)

JAL (Just Another Language) est un langage de programmation semblable au Pascal et possède un compilateur qui génère le code exécutable pour les microcontrôleurs PIC. C'est un langage au format libre pour programmer les microcontrôleurs PIC et le compilateur fonctionne sous Linux, Mac OS X, et MS-Windows. JAL est le seul langage de ce type libre de droits et a des utilisateurs actifs dans différents pays. C'est un langage configurable qui peut être enrichi par des bibliothèques et peut être combiné avec de l'assembleur.

Historique

Créé par Wouter van Ooijen, il a été publié comme logiciel libre de droits (Licence publique générale GNU) en 2003. En 2006, Stef Mientki entreprit le développement d'une nouvelle version : JAL V2. Kyle York est le programmeur de cette nouvelle version. Un groupe international d'utilisateurs constitua l'équipe du bêta test (par ordre alphabétique : Bert van Dam, Sunish Issac, Dave Lagzdin, Javier Martinez, Stef Mientki, Wouter van Ooijen, Michael Reynolds, André Steenveld, Joep Suijs, Vasile Surducan, and Michael Watterson).

Exemple de code

-- JAL 2.3
include 16f877_bert

-- définition des variables
var byte resist

-- définition des pins
pin_a0_direction = input          -- entrée résistance variable
pin_d7_direction = input          -- bouton poussoir
pin_c2_direction = output         -- Led PWM (Pulse width modulation)

-- activation de la modulation par impulsion (PWM)
PWM_init_frequency (true, true)

forever loop

    -- Numérise la valeur analogique sur a0 
   resist = ADC_read_low_res(0)

    -- met la valeur mesurée dans la mémoire flash et la relit
   program_eeprom_write(2000,resist)
   program_eeprom_read(2000,resist)

    -- met la valeur mesurée dans la mémoire de données et la relit
   data_eeprom_write(10,resist)
   data_eeprom_read(10,resist)

     -- Donne un nombre aléatoire si le bouton poussoir est appuyé.
    if pin_d7 == high then
      resist = random_byte
   end if

   -- Envoi la valeur de la variable " résist " vers un PC 
   serial_sw_write(resist)
   delay_100ms(1)
   -- paramétrage du rapport cyclique du PWM
   PWM_Set_DutyCycle (resist, resist)

end loop

Voir aussi

Article connexe

Liens externes