# serial_hardware

USART hardware control

Author | Stef Mientki, Copyright © 2002..2025, all rights reserved.
Adapted-by | Sebastien Lelong, Rob Hamerling, Rob Jansen
Compiler | 2.5r9

Description

    USART hardware control.
    Routines for sending and receiving through the PIC-usart,
    both asynchronous and synchronous are supported.
    Baudrate can simply be set through a human constant,
    because the baudrate depending registers are calculated by this unit.
    Baudrate is calculated, starting at the high baudrate flag,
    which will ensure the highest possible accuracy.
    This library supports old and new USART types.

Notes

    - Pin selection is automatic: pin_TX and pin_RX.
           - For PICs using the newer USART types, make sure to remap the USART
             pins to their default in the main program to enable the USART pins.
           - Pin direction setting is taken care of by this library.
           - When the physical locations of pin_TX and pin_RX are configurable for
             a specific PIC, the device file will probably contain names like
             pin_TX_RB2 and pin_RX_RB1 and another pair with other pin suffixes.
             Depending for which pair of pins the USART is configured aliases
             without suffixes have to be specified, like:
                 alias  pin_TX            is  pin_TX_RB2
                 alias  pin_RX            is  pin_RX_RB1
                 alias  pin_TX_direction  is  pin_TX_RB2_direction
                 alias  pin_RX_direction  is  pin_RX_RB1_direction

Dependencies

- usart_common

## Summary

### Global variables/contants

### Procedures

- `serial_hw_data'put(byte in data)`
- `serial_hw_init()`
- `serial_hw_write_word(word in data)`
- `serial_hw_write(byte in data)`
- `serial_hw_data_raw'put(byte in data)`
- `serial_hw_enable()`
- `serial_hw_disable()`

### Functions

- `serial_hw_data_ready() return bit`
- `serial_hw_read(byte out data) return bit`
- `serial_hw_data_available() return bit`
- `serial_hw_data'get() return byte`
- `serial_hw_data_raw'get() return byte`

Private

- `_serial_hw_read(byte out data) return bit`

## API details

### Global variables/contants

### Procedures

- `serial_hw_data'put(byte in data)`

      Title:     Transmit byte
      Arguments: Data (byte) to be transmitted
      Returns:   (nothing)
      Notes:     This pseudo variable allows a language construct like
      serial_hw_data =
      to transmit a byte to the seial port

- `serial_hw_init()`

      Title:     Initialize the (first or only) serial port
      Arguments: (none)
      Returns:   (nothing)

- `serial_hw_write_word(word in data)`

      Title:     Transmit word
      Arguments: Data (word) to transmit
      Returns:   (nothing)
      Notes:     Send word as 2 bytes, Most Significant Byte first.
      See also serial_hw_write()

- `serial_hw_write(byte in data)`

      Title:     Transmit byte
      Arguments: Data (byte) to transmit
      Returns:   (nothing)
      Notes:     Hardware transmit buffer must be empty, wait if not

- `serial_hw_data_raw'put(byte in data)`

      These are real raw procedures, declared as pseudo variables
      the user is totally responsible for testing the transmit/receive
      flag before using these functions

- `serial_hw_enable()`

      Title:     Enable USART
      Arguments: (none)
      Returns:   (nothing)
      Notes:     Re-enable USART after use of serial_hw_disable()

- `serial_hw_disable()`

      Title:     Disable USART
      Arguments: (none)
      Returns:   (nothing)
      Notes:     Allows pins to be used (temporary) for other purposes.
      USART can be enabled again by calling serial_hw_enable()

### Functions

- `serial_hw_data_ready() return bit`

      generic (pic-independent) variable to check if transmit buffer is empty

- `serial_hw_read(byte out data) return bit`

      Title:     Receive byte
      Arguments: (none)
      Returns:   bit:
        TRUE data available
        FALSE no data available

- `serial_hw_data_available() return bit`

      generic (pic-independent) variable to check if a byte is received

- `serial_hw_data'get() return byte`

      Title:     Receive byte
      Arguments: (none)
      Returns:   Data (byte) received
      Notes:     This pseudo variable allows a language construct like
      databyte = serial_hw_data
      to receive a byte from the serial port into variable 'databyte'

- `serial_hw_data_raw'get() return byte`

  No documentation found

Private

- `_serial_hw_read(byte out data) return bit`

      Title:     Receive byte
      Arguments: (none)
      Returns:   bit:
        TRUE data available
        FALSE no data available
      Notes:     Using this inline function for serial_hw_data'get saves a stack level
      With overrun error the USART is reset (error(?)byte is returned!)

## Related samples

Here are the list of samples which use this library:

16f13115 | 16f13115_vl53l0x_continuous.jal
16f1455 | 16f1455_usb_hid_mouse.jal
16f1455 | 16f1455_usb_hid_generic.jal
16f15325 | 16f15325_adc.jal
16f15325 | 16f15325_stopwatch2.jal
16f15325 | 16f15325_stopwatch.jal
16f1823 | 16f1823_i2c_hw_eeprom_serial.jal
16f1823 | 16f1823_serial_hardware.jal
16f1823 | 16f1823_dfplayer.jal
16f1825 | 16f1825_as5600l.jal
16f1825 | 16f1825_si5351a.jal
16f1825 | 16f1825_ina3221.jal
16f1825 | 16f1825_rda5807m.jal
16f1825 | 16f1825_rtc_ds3231.jal
16f1825 | 16f1825_nec_rc_decoder_serial.jal
16f1825 | 16f1825_vl53l0x_single.jal
16f1825 | 16f1825_vl53l0x_continuous.jal
16f1825 | 16f1825_philips_rc_decoder_serial.jal
16f1825 | 16f1825_mcp23s08.jal
16f1825 | 16f1825_nrf905.jal
16f1825 | 16f1825_virtual_wire_receiver.jal
16f1825 | 16f1825_large_array.jal
16f1825 | 16f1825_gps_neo_6m_serial.jal
16f1825 | 16f1825_bmp180.jal
16f1825 | 16f1825_mcp23008.jal
16f1825 | 16f1825_nrf24l01.jal
16f1825 | 16f1825_gps_neo_6m_ssd1306_clock.jal
16f1825 | 16f1825_dcf77_decoder_serial.jal
16f1825 | 16f1825_hcsr04_serial.jal
16f18323 | 16f18323_adc.jal
16f18325 | 16f18325_i2c_hw_l0.jal
16f18325 | 16f18325_i2c_hw2_l0.jal
16f18425 | 16f18425_i2c_hw2_l0.jal
16f18425 | 16f18425_i2c_hw_l0.jal
16f18857 | 16f18857_adc.jal
16f18857 | 16f18857_si5351a.jal
16f18857 | 16f18857_philips_rc_decoder_serial.jal
16f18857 | 16f18857_nec_rc_decoder_serial.jal
16f18857 | 16f18857_glcd_ili9341_fat32_sd_card.jal
16f19176 | 16f19176_serial_hardware.jal
16f648a | 16f648a_serial_print.jal
16f648a | 16f648a_keyboard.jal
16f648a | 16f648a_i2c_sw_master_echo.jal
16f648a | 16f648a_i2c_sw_l1.jal
16f648a | 16f648a_debug.jal
16f648a | 16f648a_queue.jal
16f648a | 16f648a_sirc.jal
16f648a | 16f648a_print_large_number.jal
16f648a | 16f648a_lcd_dsm0822a.jal
16f648a | 16f648a_startersguide.jal
16f648a | 16f648a_serial_hw_echo.jal
16f648a | 16f648a_bit_array.jal
16f648a | 16f648a_lcd_hd44780_pcf8574.jal
16f648a | 16f648a_stopwatch.jal
16f648a | 16f648a_delay_basic.jal
16f648a | 16f648a_ir_ranger_gp2d02.jal
16f648a | 16f648a_random.jal
16f648a | 16f648a_serial_hardware.jal
16f648a | 16f648a_serial_format.jal
16f648a | 16f648a_sqrt.jal
16f648a | 16f648a_i2c_sw_l0.jal
16f688 | 16f688_big_calendar.jal
16f723 | 16f723_serial_print.jal
16f723 | 16f723_bit_array.jal
16f723 | 16f723_ir_ranger_gp2d02.jal
16f723 | 16f723_serial_format.jal
16f723 | 16f723_i2c_hw_slave_eeprom_simulator.jal
16f723 | 16f723_lcd_hd44780_pcf8574.jal
16f723 | 16f723_stopwatch.jal
16f723 | 16f723_debug.jal
16f723 | 16f723_delay_basic.jal
16f723 | 16f723_startersguide.jal
16f723 | 16f723_serial_hardware.jal
16f723 | 16f723_keyboard.jal
16f723 | 16f723_i2c_sw_master_echo.jal
16f723 | 16f723_queue.jal
16f723 | 16f723_sqrt.jal
16f723 | 16f723_i2c_sw_l0.jal
16f723 | 16f723_serial_hw_echo.jal
16f723 | 16f723_sirc.jal
16f723 | 16f723_lcd_dsm0822a.jal
16f723 | 16f723_i2c_hw_slave_msg.jal
16f723 | 16f723_adc_independent.jal
16f723 | 16f723_random.jal
16f723 | 16f723_i2c_sw_l1.jal
16f73 | 16f73_keyboard.jal
16f73 | 16f73_bit_array.jal
16f73 | 16f73_lcd_dsm0822a.jal
16f73 | 16f73_serial_hardware.jal
16f73 | 16f73_temperature_tc77.jal
16f73 | 16f73_serial_format.jal
16f73 | 16f73_adc_dependent.jal
16f73 | 16f73_debug.jal
16f73 | 16f73_i2c_hw_slave_msg.jal
16f73 | 16f73_stopwatch.jal
16f73 | 16f73_sirc.jal
16f73 | 16f73_startersguide.jal
16f73 | 16f73_delay_basic.jal
16f73 | 16f73_i2c_hw_slave_eeprom_simulator.jal
16f73 | 16f73_serial_print.jal
16f73 | 16f73_sqrt.jal
16f73 | 16f73_i2c_sw_master_echo.jal
16f73 | 16f73_random.jal
16f73 | 16f73_lcd_hd44780_pcf8574.jal
16f73 | 16f73_queue.jal
16f73 | 16f73_i2c_sw_l0.jal
16f73 | 16f73_i2c_sw_l1.jal
16f73 | 16f73_serial_hw_echo.jal
16f767 | 16f767_pwm_adc.jal
16f77 | 16f77_adc_lowres.jal
16f876a | 16f876a_co2_t6603.jal
16f876a | 16f876a_adc.jal
16f877 | 16f877_temperature_tc77.jal
16f877 | 16f877_serial_print.jal
16f877 | 16f877_queue.jal
16f877 | 16f877_startersguide.jal
16f877 | 16f877_fat32_small_pata_hard_disk.jal
16f877 | 16f877_i2c_hw_slave_msg.jal
16f877 | 16f877_debug.jal
16f877 | 16f877_serial_format.jal
16f877 | 16f877_lcd_dsm0822a.jal
16f877 | 16f877_adc_dependent.jal
16f877 | 16f877_print_large_number.jal
16f877 | 16f877_keyboard.jal
16f877 | 16f877_24lc256.jal
16f877 | 16f877_pata_hard_disk.jal
16f877 | 16f877_serial_hw_echo.jal
16f877 | 16f877_sirc.jal
16f877 | 16f877_slip_isr.jal
16f877 | 16f877_i2c_sw_l1.jal
16f877 | 16f877_servo_rc_slave.jal
16f877 | 16f877_random.jal
16f877 | 16f877_sqrt.jal
16f877 | 16f877_serial_hardware.jal
16f877 | 16f877_i2c_sw_master_echo.jal
16f877 | 16f877_i2c_sw_l0.jal
16f877 | 16f877_i2c_hw_l1.jal
16f877 | 16f877_i2c_hw_l0.jal
16f877 | 16f877_stopwatch.jal
16f877 | 16f877_i2c_hw_slave_eeprom_simulator.jal
16f877 | 16f877_lcd_hd44780_pcf8574.jal
16f877 | 16f877_adc.jal
16f877 | 16f877_slip_poll.jal
16f877 | 16f877_bit_array.jal
16f877 | 16f877_delay_basic.jal
16f877a | 16f877a_lcd_hd44780_pcf8574.jal
16f877a | 16f877a_23k256.jal
16f877a | 16f877a_i2c_sw_master_echo.jal
16f877a | 16f877a_pata_hard_disk.jal
16f877a | 16f877a_print_large_number.jal
16f877a | 16f877a_nec_rc_decoder_serial.jal
16f877a | 16f877a_bit_array.jal
16f877a | 16f877a_serial_print.jal
16f877a | 16f877a_i2c_hw_l0.jal
16f877a | 16f877a_queue.jal
16f877a | 16f877a_sirc.jal
16f877a | 16f877a_i2c_sw_l0.jal
16f877a | 16f877a_rtc_pcf8563.jal
16f877a | 16f877a_i2c_hw_slave_msg.jal
16f877a | 16f877a_i2c_hw_l1.jal
16f877a | 16f877a_keyboard.jal
16f877a | 16f877a_startersguide.jal
16f877a | 16f877a_lcd_dsm0822a.jal
16f877a | 16f877a_delay_basic.jal
16f877a | 16f877a_adc_dependent.jal
16f877a | 16f877a_sqrt.jal
16f877a | 16f877a_fat32_small_pata_hard_disk.jal
16f877a | 16f877a_servo_rc_slave.jal
16f877a | 16f877a_philips_rc_decoder_serial.jal
16f877a | 16f877a_i2c_sw_l1.jal
16f877a | 16f877a_co2_t6603.jal
16f877a | 16f877a_temperature_tc77.jal
16f877a | 16f877a_servo_rc_master.jal
16f877a | 16f877a_serial_hardware.jal
16f877a | 16f877a_serial_format.jal
16f877a | 16f877a_stopwatch.jal
16f877a | 16f877a_random.jal
16f877a | 16f877a_slip_poll.jal
16f877a | 16f877a_serial_hw_echo.jal
16f877a | 16f877a_debug.jal
16f877a | 16f877a_i2c_hw_slave_eeprom_simulator.jal
16f877a | 16f877a_24lc256.jal
16f877a | 16f877a_slip_isr.jal
16f88 | 16f88_temperature_tc77.jal
16f88 | 16f88_lcd_hd44780_pcf8574.jal
16f88 | 16f88_sirc.jal
16f88 | 16f88_adc_lowres.jal
16f88 | 16f88_sqrt.jal
16f88 | 16f88_debug.jal
16f88 | 16f88_delay_basic.jal
16f88 | 16f88_i2c_sw_l0.jal
16f88 | 16f88_bit_array.jal
16f88 | 16f88_stopwatch.jal
16f88 | 16f88_remember_me.jal
16f88 | 16f88_i2c_sw_master_echo.jal
16f88 | 16f88_serial_format.jal
16f88 | 16f88_i2c_hw_slave_msg.jal
16f88 | 16f88_queue.jal
16f88 | 16f88_adc_highres.jal
16f88 | 16f88_i2c_hw_slave_eeprom_simulator.jal
16f88 | 16f88_serial_hw_echo.jal
16f88 | 16f88_startersguide.jal
16f88 | 16f88_i2c_sw_l1.jal
16f88 | 16f88_random.jal
16f88 | 16f88_print_large_number.jal
16f88 | 16f88_adc_independent.jal
16f88 | 16f88_keyboard.jal
16f88 | 16f88_serial_print.jal
16f88 | 16f88_serial_hardware.jal
16f88 | 16f88_lcd_dsm0822a.jal
16f886 | 16f886_math.jal
18f14k50 | 18f14k50_random.jal
18f14k50 | 18f14k50_usb_hid_mouse.jal
18f14k50 | 18f14k50_i2c_sw_l1.jal
18f14k50 | 18f14k50_lcd_dsm0822a.jal
18f14k50 | 18f14k50_lcd_hd44780_pcf8574.jal
18f14k50 | 18f14k50_i2c_sw_l0.jal
18f14k50 | 18f14k50_serial_format.jal
18f14k50 | 18f14k50_serial_print.jal
18f14k50 | 18f14k50_print_large_number.jal
18f14k50 | 18f14k50_usb_bootloader.jal
18f14k50 | 18f14k50_i2c_hw_l0.jal
18f14k50 | 18f14k50_stopwatch.jal
18f14k50 | 18f14k50_debug.jal
18f14k50 | 18f14k50_i2c_hw_l1.jal
18f14k50 | 18f14k50_startersguide.jal
18f14k50 | 18f14k50_i2c_hw_slave_eeprom_simulator.jal
18f14k50 | 18f14k50_queue.jal
18f14k50 | 18f14k50_usb_hid_generic.jal
18f14k50 | 18f14k50_sqrt.jal
18f14k50 | 18f14k50_i2c_hw_slave_msg.jal
18f14k50 | 18f14k50_serial_hardware.jal
18f14k50 | 18f14k50_delay_basic.jal
18f14k50 | 18f14k50_serial_hw_echo.jal
18f14k50 | 18f14k50_i2c_sw_master_echo.jal
18f14k50 | 18f14k50_usb_bootloader_autostart.jal
18f14k50 | 18f14k50_adc_independent.jal
18f14k50 | 18f14k50_temperature_tc77.jal
18f14k50 | 18f14k50_bit_array.jal
18f14k50 | 18f14k50_large_array.jal
18f14k50 | 18f14k50_keyboard.jal
18f15q40 | 18f15q40_memory_pointer.jal
18f15q40 | 18f15q40_mcp23s08.jal
18f15q40 | 18f15q40_dma_usart.jal
18f15q40 | 18f15q40_stopwatch2.jal
18f15q40 | 18f15q40_stopwatch.jal
18f16q20 | 18f16q20_serial_hardware.jal
18f2450 | 18f2450_usb_bootloader_autostart.jal
18f2450 | 18f2450_lcd_hd44780_pcf8574.jal
18f2450 | 18f2450_large_array.jal
18f2450 | 18f2450_usb_bootloader.jal
18f2450 | 18f2450_serial_format.jal
18f2450 | 18f2450_debug.jal
18f2450 | 18f2450_adc_dependent.jal
18f2450 | 18f2450_sqrt.jal
18f2450 | 18f2450_serial_hw_echo.jal
18f2450 | 18f2450_delay_basic.jal
18f2450 | 18f2450_startersguide.jal
18f2450 | 18f2450_serial_print.jal
18f2450 | 18f2450_print_large_number.jal
18f2450 | 18f2450_random.jal
18f2450 | 18f2450_lcd_dsm0822a.jal
18f2450 | 18f2450_keyboard.jal
18f2450 | 18f2450_ir_ranger_gp2d02.jal
18f2450 | 18f2450_serial_hardware.jal
18f2450 | 18f2450_i2c_sw_master_echo.jal
18f2450 | 18f2450_bit_array.jal
18f2450 | 18f2450_sirc.jal
18f2450 | 18f2450_queue.jal
18f2450 | 18f2450_i2c_sw_l0.jal
18f2450 | 18f2450_usb_hid_mouse.jal
18f2450 | 18f2450_i2c_sw_l1.jal
18f2450 | 18f2450_stopwatch.jal
18f2450 | 18f2450_usb_hid_generic.jal
18f2520 | 18f2520_delay_basic.jal
18f2520 | 18f2520_random.jal
18f2520 | 18f2520_lcd_dsm0822a.jal
18f2520 | 18f2520_large_array.jal
18f2520 | 18f2520_queue.jal
18f2520 | 18f2520_temperature_tc77.jal
18f2520 | 18f2520_i2c_hw_slave_eeprom_simulator.jal
18f2520 | 18f2520_i2c_hw_l0.jal
18f2520 | 18f2520_keyboard.jal
18f2520 | 18f2520_i2c_hw_l1.jal
18f2520 | 18f2520_adc_dependent.jal
18f2520 | 18f2520_ir_ranger_gp2d02.jal
18f2520 | 18f2520_stopwatch.jal
18f2520 | 18f2520_lcd_hd44780_pcf8574.jal
18f2520 | 18f2520_i2c_sw_l0.jal
18f2520 | 18f2520_print_large_number.jal
18f2520 | 18f2520_serial_hw_echo.jal
18f2520 | 18f2520_bit_array.jal
18f2520 | 18f2520_startersguide.jal
18f2520 | 18f2520_i2c_hw_slave_msg.jal
18f2520 | 18f2520_sqrt.jal
18f2520 | 18f2520_serial_print.jal
18f2520 | 18f2520_serial_hardware.jal
18f2520 | 18f2520_debug.jal
18f2520 | 18f2520_i2c_sw_l1.jal
18f2520 | 18f2520_serial_format.jal
18f2520 | 18f2520_sirc.jal
18f2520 | 18f2520_i2c_sw_master_echo.jal
18f2550 | 18f2550_lcd_dsm0822a.jal
18f2550 | 18f2550_keyboard.jal
18f2550 | 18f2550_sqrt.jal
18f2550 | 18f2550_serial_hw_echo.jal
18f2550 | 18f2550_debug.jal
18f2550 | 18f2550_sirc.jal
18f2550 | 18f2550_bit_array.jal
18f2550 | 18f2550_serial_format.jal
18f2550 | 18f2550_i2c_hw_l0.jal
18f2550 | 18f2550_temperature_tc77.jal
18f2550 | 18f2550_large_array.jal
18f2550 | 18f2550_usb_bootloader_autostart.jal
18f2550 | 18f2550_adc_dependent.jal
18f2550 | 18f2550_queue.jal
18f2550 | 18f2550_i2c_hw_l1.jal
18f2550 | 18f2550_serial_print.jal
18f2550 | 18f2550_usb_hid_mouse.jal
18f2550 | 18f2550_i2c_sw_l0.jal
18f2550 | 18f2550_delay_basic.jal
18f2550 | 18f2550_ir_ranger_gp2d02.jal
18f2550 | 18f2550_i2c_sw_l1.jal
18f2550 | 18f2550_i2c_sw_master_echo.jal
18f2550 | 18f2550_usb_hid_generic.jal
18f2550 | 18f2550_i2c_hw_slave_eeprom_simulator.jal
18f2550 | 18f2550_print_large_number.jal
18f2550 | 18f2550_lcd_hd44780_pcf8574.jal
18f2550 | 18f2550_random.jal
18f2550 | 18f2550_startersguide.jal
18f2550 | 18f2550_stopwatch.jal
18f2550 | 18f2550_serial_hardware.jal
18f2550 | 18f2550_i2c_hw_slave_msg.jal
18f2585 | 18f2585_can_serial_hw.jal
18f25k22 | 18f25k22_i2c_hw_master_echo.jal
18f25k22 | 18f25k22_adc.jal
18f2620 | 18f2620_lcd_hd44780_pcf8574.jal
18f2620 | 18f2620_queue.jal
18f2620 | 18f2620_sirc.jal
18f2620 | 18f2620_startersguide.jal
18f2620 | 18f2620_i2c_sw_l0.jal
18f2620 | 18f2620_serial_format.jal
18f2620 | 18f2620_lcd_dsm0822a.jal
18f2620 | 18f2620_adc_dependent.jal
18f2620 | 18f2620_i2c_hw_slave_eeprom_simulator.jal
18f2620 | 18f2620_serial_hw_echo.jal
18f2620 | 18f2620_i2c_hw_l0.jal
18f2620 | 18f2620_stopwatch.jal
18f2620 | 18f2620_serial_hardware.jal
18f2620 | 18f2620_serial_print.jal
18f2620 | 18f2620_i2c_hw_l1.jal
18f2620 | 18f2620_i2c_hw_slave_msg.jal
18f2620 | 18f2620_ir_ranger_gp2d02.jal
18f2620 | 18f2620_random.jal
18f2620 | 18f2620_i2c_sw_master_echo.jal
18f2620 | 18f2620_keyboard.jal
18f2620 | 18f2620_delay_basic.jal
18f2620 | 18f2620_debug.jal
18f2620 | 18f2620_sqrt.jal
18f2620 | 18f2620_bit_array.jal
18f2620 | 18f2620_temperature_tc77.jal
18f2620 | 18f2620_i2c_sw_l1.jal
18f2620 | 18f2620_large_array.jal
18f2620 | 18f2620_print_large_number.jal
18f26j50 | 18f26j50_fat32_sd_card.jal
18f26j50 | 18f26j50_sd_card.jal
18f26k42 | 18f26k42_serial_hardware.jal
18f27j53 | 18f27j53_dht11.jal
18f27j53 | 18f27j53_sd_card_minix_readi.jal
18f27j53 | 18f27j53_xbee_api_rx.jal
18f27j53 | 18f27j53_sd_card_minix_read.jal
18f27j53 | 18f27j53_sd_card_minix_demo.jal
18f27j53 | 18f27j53_xbee_api_tx.jal
18f452 | 18f452_serial_print.jal
18f452 | 18f452_pata_hard_disk.jal
18f452 | 18f452_i2c_sw_l1.jal
18f452 | 18f452_23k256.jal
18f452 | 18f452_ir_ranger_gp2d02.jal
18f452 | 18f452_sd_card.jal
18f452 | 18f452_lcd_hd44780_pcf8574.jal
18f452 | 18f452_delay_basic.jal
18f452 | 18f452_serial_format.jal
18f452 | 18f452_i2c_sw_l0.jal
18f452 | 18f452_sirc.jal
18f452 | 18f452_serial_hw_echo.jal
18f452 | 18f452_24lc256.jal
18f452 | 18f452_startersguide.jal
18f452 | 18f452_i2c_hw_l1.jal
18f452 | 18f452_serial_hardware.jal
18f452 | 18f452_servo_rc_master.jal
18f452 | 18f452_stopwatch.jal
18f452 | 18f452_print_large_number.jal
18f452 | 18f452_i2c_hw_slave_msg.jal
18f452 | 18f452_random.jal
18f452 | 18f452_i2c_sw_master_echo.jal
18f452 | 18f452_i2c_hw_l0.jal
18f452 | 18f452_pressure.jal
18f452 | 18f452_keyboard.jal
18f452 | 18f452_bit_array.jal
18f452 | 18f452_temperature_tc77.jal
18f452 | 18f452_lcd_dsm0822a.jal
18f452 | 18f452_debug.jal
18f452 | 18f452_sqrt.jal
18f452 | 18f452_fat32_small_pata_hard_disk.jal
18f452 | 18f452_i2c_hw_slave_eeprom_simulator.jal
18f452 | 18f452_adc_dependent.jal
18f452 | 18f452_queue.jal
18f452 | 18f452_large_array.jal
18f452 | 18f452_servo_rc_slave.jal
18f452 | 18f452_fat32_small_sd_card.jal
18f4525 | 18f4525_mp3_decoder_vs1053b_pata_hard_disk.jal
18f4525 | 18f4525_24lc256.jal
18f4525 | 18f4525_fat32_small_pata_hard_disk.jal
18f4525 | 18f4525_slip_poll.jal
18f4525 | 18f4525_mp3_decoder_vs1053b_sd_card.jal
18f4525 | 18f4525_fat32_sd_card.jal
18f4525 | 18f4525_pata_hard_disk.jal
18f4525 | 18f4525_slip_isr.jal
18f4525 | 18f4525_servo_rc_slave.jal
18f4525 | 18f4525_fat32_pata_hard_disk.jal
18f4525 | 18f4525_sd_card.jal
18f4525 | 18f4525_fat32_small_sd_card.jal
18f4550 | 18f4550_lcd_dsm0822a.jal
18f4550 | 18f4550_i2c_hw_l1.jal
18f4550 | 18f4550_startersguide.jal
18f4550 | 18f4550_adc_dependent.jal
18f4550 | 18f4550_temperature_tc77.jal
18f4550 | 18f4550_serial_format.jal
18f4550 | 18f4550_sqrt.jal
18f4550 | 18f4550_i2c_hw_slave_eeprom_simulator.jal
18f4550 | 18f4550_24lc256.jal
18f4550 | 18f4550_usb_hid_mouse.jal
18f4550 | 18f4550_slip_poll.jal
18f4550 | 18f4550_random.jal
18f4550 | 18f4550_serial_hw_echo.jal
18f4550 | 18f4550_i2c_sw_master_echo.jal
18f4550 | 18f4550_queue.jal
18f4550 | 18f4550_adc.jal
18f4550 | 18f4550_usb_hid_generic.jal
18f4550 | 18f4550_sirc.jal
18f4550 | 18f4550_servo_rc_slave.jal
18f4550 | 18f4550_serial_hardware.jal
18f4550 | 18f4550_bit_array.jal
18f4550 | 18f4550_lcd_hd44780_pcf8574.jal
18f4550 | 18f4550_keyboard.jal
18f4550 | 18f4550_usb_bootloader_autostart.jal
18f4550 | 18f4550_i2c_sw_l0.jal
18f4550 | 18f4550_stopwatch.jal
18f4550 | 18f4550_temperature_max6675.jal
18f4550 | 18f4550_usb_bootloader.jal
18f4550 | 18f4550_large_array.jal
18f4550 | 18f4550_i2c_sw_l1.jal
18f4550 | 18f4550_dynamic_adc.jal
18f4550 | 18f4550_print_large_number.jal
18f4550 | 18f4550_ir_ranger_gp2d02.jal
18f4550 | 18f4550_slip_isr.jal
18f4550 | 18f4550_i2c_hw_slave_msg.jal
18f4550 | 18f4550_debug.jal
18f4550 | 18f4550_i2c_hw_l0.jal
18f4550 | 18f4550_delay_basic.jal
18f4550 | 18f4550_serial_print.jal
18f4620 | 18f4620_network_slip_isr_ping_udp.jal
18f4620 | 18f4620_slip_poll.jal
18f4620 | 18f4620_ir_ranger_gp2d02.jal
18f4620 | 18f4620_mp3_decoder_vs1053b_sd_card.jal
18f4620 | 18f4620_lcd_hd44780_pcf8574.jal
18f4620 | 18f4620_spi_to_serial.jal
18f4620 | 18f4620_debug.jal
18f4620 | 18f4620_24lc256.jal
18f4620 | 18f4620_startersguide.jal
18f4620 | 18f4620_i2c_hw_l1.jal
18f4620 | 18f4620_fat32_small_pata_hard_disk.jal
18f4620 | 18f4620_i2c_sw_l1.jal
18f4620 | 18f4620_i2c_hw_slave_msg.jal
18f4620 | 18f4620_temperature_tc77.jal
18f4620 | 18f4620_quadrature_counter_ls7366r.jal
18f4620 | 18f4620_sirc.jal
18f4620 | 18f4620_i2c_hw_l0.jal
18f4620 | 18f4620_serial_print.jal
18f4620 | 18f4620_sd_card.jal
18f4620 | 18f4620_delay_basic.jal
18f4620 | 18f4620_queue.jal
18f4620 | 18f4620_servo_rc_slave.jal
18f4620 | 18f4620_spi_slave_hw.jal
18f4620 | 18f4620_freq_counter_osc_in.jal
18f4620 | 18f4620_servo_rc_master.jal
18f4620 | 18f4620_serial_hardware.jal
18f4620 | 18f4620_i2c_hw_slave_eeprom_simulator.jal
18f4620 | 18f4620_transceiver_cc1101.jal
18f4620 | 18f4620_stopwatch.jal
18f4620 | 18f4620_lcd_dsm0822a.jal
18f4620 | 18f4620_pata_hard_disk.jal
18f4620 | 18f4620_serial_hw_echo.jal
18f4620 | 18f4620_freq_counter_timer_in.jal
18f4620 | 18f4620_i2c_sw_l0.jal
18f4620 | 18f4620_large_array.jal
18f4620 | 18f4620_keyboard.jal
18f4620 | 18f4620_fat32_small_sd_card.jal
18f4620 | 18f4620_ps2_keyboard.jal
18f4620 | 18f4620_motor_hbridge.jal
18f4620 | 18f4620_serial_format.jal
18f4620 | 18f4620_slip_isr.jal
18f4620 | 18f4620_accelerometer_gyroscope_bmi160.jal
18f4620 | 18f4620_bit_array.jal
18f4620 | 18f4620_fat32_sd_card.jal
18f4620 | 18f4620_fat32_pata_hard_disk.jal
18f4620 | 18f4620_sqrt.jal
18f4620 | 18f4620_mp3_decoder_vs1053b_pata_hard_disk.jal
18f4620 | 18f4620_print_large_number.jal
18f4620 | 18f4620_adc_dependent.jal
18f4620 | 18f4620_i2c_sw_master_echo.jal
18f4620 | 18f4620_interrupt_on_change_pin_b0.jal
18f4620 | 18f4620_random.jal
18f46k22 | 18f46k22_slip_poll.jal
18f46k22 | 18f46k22_slip_isr.jal
18f47q43 | 18f47q43_serial_hardware.jal
18f67j50 | 18f67j50_crc16_ccitt_bitwise.jal
18f67j50 | 18f67j50_random.jal
18f67j50 | 18f67j50_serial_format.jal
18f67j50 | 18f67j50_fat32_usb_msd_sd_card.jal
18f67j50 | 18f67j50_i2c_sw_l1.jal
18f67j50 | 18f67j50_fat32_small_sd_card.jal
18f67j50 | 18f67j50_lcd_hd44780_pcf8574.jal
18f67j50 | 18f67j50_serial_hardware.jal
18f67j50 | 18f67j50_serial_print.jal
18f67j50 | 18f67j50_i2c_hw_l0.jal
18f67j50 | 18f67j50_pata_hard_disk.jal
18f67j50 | 18f67j50_bit_array.jal
18f67j50 | 18f67j50_usb_mouse.jal
18f67j50 | 18f67j50_fat32_pata_hard_disk.jal
18f67j50 | 18f67j50_crc16_ccitt_lookup.jal
18f67j50 | 18f67j50_keyboard.jal
18f67j50 | 18f67j50_usb_hid_generic.jal
18f67j50 | 18f67j50_print_large_number.jal
18f67j50 | 18f67j50_fat32_sd_card.jal
18f67j50 | 18f67j50_temperature_tc77.jal
18f67j50 | 18f67j50_crc7_bitwise.jal
18f67j50 | 18f67j50_mp3_decoder_vs1053b_sd_card.jal
18f67j50 | 18f67j50_usb_bootloader_autostart.jal
18f67j50 | 18f67j50_slip_poll.jal
18f67j50 | 18f67j50_queue.jal
18f67j50 | 18f67j50_sqrt.jal
18f67j50 | 18f67j50_mp3_decoder_vs1053b_pata_hard_disk.jal
18f67j50 | 18f67j50_serial_hw_echo.jal
18f67j50 | 18f67j50_23k256.jal
18f67j50 | 18f67j50_large_array.jal
18f67j50 | 18f67j50_fat32_small_pata_hard_disk.jal
18f67j50 | 18f67j50_sd_card.jal
18f67j50 | 18f67j50_sirc.jal
18f67j50 | 18f67j50_sd_card_crc.jal
18f67j50 | 18f67j50_i2c_sw_l0.jal
18f67j50 | 18f67j50_startersguide.jal
18f67j50 | 18f67j50_slip_isr.jal
18f67j50 | 18f67j50_delay_basic.jal
18f67j50 | 18f67j50_i2c_sw_master_echo.jal
18f67j50 | 18f67j50_usb_hid_mouse.jal
18f67j50 | 18f67j50_debug.jal
18f67j50 | 18f67j50_usb_msd_pata_hard_disk.jal
18f67j50 | 18f67j50_fat32_usb_msd_pata_hard_disk.jal
18f67j50 | 18f67j50_i2c_hw_l1.jal
18f67j50 | 18f67j50_i2c_hw_slave_eeprom_simulator.jal
18f67j50 | 18f67j50_usb_msd_sd_card.jal
18f67j50 | 18f67j50_i2c_hw_slave_msg.jal
18f67j50 | 18f67j50_memory_pointer.jal
18f67j50 | 18f67j50_lcd_dsm0822a.jal
18f67j50 | 18f67j50_stopwatch.jal
18f67j60 | 18f67j60_fat32_sd_card.jal