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