Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 20200708_m32u4_pcf8576.c
- *
- * Created: 2020-07-08 21:09:00
- * Author : uwezi
- */
- #include <avr/io.h>
- #include <util/delay.h>
- #include "i2cmaster.h"
- #define i2c_pcf8576 0x40
- void init(void)
- {
- DDRE = (1 << PE6);
- i2c_init(1,152);
- }
- void all_off(void)
- {
- uint8_t j;
- i2c_start_wait(0b01110000);
- i2c_write(0b11100000);
- i2c_write(0);
- for (j=0; j<20; j++)
- {
- i2c_write(0x00);
- }
- i2c_stop();
- _delay_ms(10);
- }
- #define fONE 0b00000110
- #define fTWO 0b01111010
- #define fTHREE 0b00111110
- #define fFOUR 0b10100110
- #define fFIVE 0b10111100
- #define fSIX 0b11111100
- #define fSEVEN 0b00001110
- #define fEIGHT 0b11111110
- #define fNINE 0b10111110
- #define fZERO 0b11011110
- #define fSYM 0b00000001
- uint8_t framebuffer[16] = {fONE,fTWO,fTHREE,fFOUR,fFIVE,fSIX,fSEVEN,fEIGHT,fNINE,fZERO,fONE,fTWO,fTHREE,fFOUR,fFIVE,fSIX};
- uint8_t adresses[16] = {0x02,0x06,0x08,0x0a,0x0c,0x0e,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x24,0x26};
- int main(void)
- {
- uint8_t adr=0, j;
- init();
- _delay_ms(100);
- i2c_start_wait(0b01110000);
- i2c_write(0b11100000);
- // C 1 0 LP E B M1 M0
- i2c_write(0b11011000);
- i2c_write(0b01110101);
- i2c_stop();
- while(1)
- {
- {
- PORTE |= (1 << PE6);
- _delay_ms(1);
- PORTE &= ~(1 << PE6);
- }
- all_off();
- i2c_start_wait(0b01110000);
- i2c_write(0b11100000);
- i2c_write(0);
- for (j=0; j<20; j++)
- {
- if (j==adresses[adr]/2)
- {
- i2c_write(framebuffer[adr] | fSYM);
- }
- else
- {
- i2c_write(0);
- }
- }
- i2c_stop();
- adr ++;
- adr %= 16;
- _delay_ms(300);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement