# max7219_1

Library to support a single 8x8 led matrix with MAX7219

Author | Rob Hamerling, Copyright © 2014..2014, all rights reserved.
Adapted-by |
Compiler | 2.4q2

Description

    See the description of max7219.jal.

Notes

    - This library supports only a single max7219 module.
           - The terms 'row' and 'column' are ambiguous: depending on the orientation
             of the module! This library calls the LEDs which can be written with a
             single write operation a column. Writing a row of a single module requires
             8 writes and the cache being active.
             See the procedures max7219_display_col() and max7219_display_row().

Dependencies

- max7219_common

## Summary

### Global variables/contants

### Procedures

- `max7219_display_blink(byte in times, byte in halfperiod)`
- `max7219_init()`
- `max7219_display_row(byte in row, bit in state)`
- `max7219_display_bit(byte in col, byte in row, bit in state)`
- `max7219_display_test(byte in period)`
- `max7219_display_col(byte in col, bit in state)`
- `max7219_display_byte_bin(byte in col, byte in data)`
- `max7219_display_clear()`
- `max7219_display_intensity(byte in intensity)`

Private

- `_max7219_write(byte in addr, byte in data)`

### Functions

## API details

### Global variables/contants

### Procedures

- `max7219_display_blink(byte in times, byte in halfperiod)`

      Title:  Blink whole module a number of times at a given speed
      Input:  - number of times the display should blink
       time in 0.1 seconds of the on and off periods (duty cycle is 50%)
      Notes:  All 'on' LEDs will blink simultaneously.

- `max7219_init()`

      Title:  Initialize LED module with max7219
      Input:  (none)
      Notes:  Must be called before any other operation involving the display

- `max7219_display_row(byte in row, bit in state)`

      Title: Display a row of leds (all leds in a row on or off)
      Input: - row number (byte, 0..7)
       led state (true or false, resp. on or off)

- `max7219_display_bit(byte in col, byte in row, bit in state)`

      Title: Set or reset a single LED
      Input: - column number (byte, 0..7)
       row number (byte, 0..7)
       led state (true or false, on or off)

- `max7219_display_test(byte in period)`

      Title:  Put MAX7219 in test mode for some time.
      Input:  test period (byte, number of 0.1 seconds)
      Notes:  All leds will be in maximum intensity during the specified period

- `max7219_display_col(byte in col, bit in state)`

      Title: Display a column of leds (all leds on a column on or off)
      Input: - column number (byte, 0..7)
       led state (true or false, resp. on or off)

- `max7219_display_byte_bin(byte in col, byte in data)`

      Title: Display whole column (byte, 8 bits)
      Input: - column number (byte, 0..7)
       byte with value to be displayed

- `max7219_display_clear()`

      Title:  Clear display (all LEDs off)
      Input: (none)

- `max7219_display_intensity(byte in intensity)`

      Title:  Set LED intensity
      Input:  LED intensity (supported range 0..15)

Private

- `_max7219_write(byte in addr, byte in data)`

      Title:  transfer addr + data to the max7219
      Input:  - address (command) byte
       data byte

### Functions

## Related samples

Here are the list of samples which use this library:

12f1840 | 12f1840_max7219_1_spi_sw.jal
12f1840 | 12f1840_max7219_1_spi_hw.jal
12f683 | 12f683_max7219_1_spi_sw.jal