- JAL (compiler)
JAL (Just Another Language) is a Pascal-like
programming language andcompiler that generates executable code forPIC microcontroller s. It is a free-format language for programming PIC microcontrollers and the compiler runs on Linux, Mac OS X, and MS-Windows. JAL is the only free-of-charge advanced language for PICs, and has a large and active international user base. It is configurable and extendable by use of libraries and can even be combined with assembler.History
It was originally created by Wouter van Ooijen, but was released as
free software under theGNU General Public License in 2003. In 2006, Stef Mientki initiated the development of a brand new JAL version: V2. Kyle York is the programmer of this new version, and an international user group took care of the beta testing. [Beta testing by: Bert van Dam, Sunish Isaac, Dave Lagzdin, Javier Martinez, Stef Mientki, Wouter van Ooijen, Michael Reynolds, André Steenveld, Joep Suijs, Vasile Surducan, and Michael Watterson]ample code
-- JAL 2.3 include 16f877_bert -- define the variables var byte resist -- define the pins pin_a0_direction = input -- variable resistor pin_d7_direction = input -- switch pin_c2_direction = output -- pwm led -- enable pulse width modulation PWM_init_frequency (true, true) forever loop -- convert analog on a0 to digital resist = ADC_read_low_res(0) -- run measurement through flash memory program_eeprom_write(2000,resist) program_eeprom_read(2000,resist) -- run measurement through data memory data_eeprom_write(10,resist) data_eeprom_read(10,resist) -- if the switch is pressed return random value if pin_d7 = high then resist = random_byte end if -- send resistance to PC serial_sw_write(resist) delay_100ms(1) -- set actual PWM duty cycle PWM_Set_DutyCycle (resist, resist) end loop
References
Links
These are the basic links that will help you get started with JAL. For a selected range of PIC microcontrollers starterpacks are available that will get you up and running in minutes. For other PICs or other functionalities download additional libraries.
* [http://pic.flappie.nl/ JAL Libraries]
* [http://www.casadeyork.com/jalv2/ JAL Compiler]
* [http://members.home.nl/b.vandam/lonely/index.html JAL Starterpacks]
* [http://tech.groups.yahoo.com/group/jallist JAL Support]Books
* [http://www.elektuur.nl/products/books/microcontrollers/pic-microcontrollers.92178.lynkx Dutch: PIC Microcontrollers, 50 projecten voor beginners en experts]
* [http://members.home.nl/b.vandam/boek/index.html Dutch: Kunstmatige Intelligentie, breng uw microcontroller tot leven]
* [http://members.home.nl/b.vandam/boek/index.html English: PIC Microcontrollers, 50 projects for beginners and experts]
* [http://www.altaskitap.com/JAL%20kitabi.htm Turkish: JAL ile PIC programlama]
* [http://www.geocities.com/vsurducan/electro/PIC/pic.htm Romanian: Microcontrolere Pentru Toti]User websites
Browse these websites to get an idea of JAL's possibilities.
*Watty http://www.wattystuff.net/tiki/tiki-index.php?page=PIC+Micro
*Stef http://pic.flappie.nl/
*Javi http://personal.telefonica.terra.es/web/japus/
*Vasile http://www.geocities.com/vsurducan/electro/PIC/pic.htm
*Joep http://home.westbrabant.net/~jsuijs/myrobots/MyRobots.html
*Sébastien http://sirbot.org/
*Olivier http://oca.memebot.com/picshell/
*Wouter http://www.voti.nl/e_index.html
*Bert http://members.home.nl/b.vandam/lonely/index.html
*Kyle http://www.casadeyork.com/jalv2/
*Rob http://www.robh.nl/
*Mike http://mikerey35475.tripod.com/index.html
*William http://jalethernet.com/
*Steven http://www.semifluid.com/?cat=4
*Andre http://www.100acre.org/elec/
*Sunish http://sunish.net/jaledit
*The Yahoo! Group http://tech.groups.yahoo.com/group/jallist
Wikimedia Foundation. 2010.