xm32e5 pcf8574
: 16 maja 2022, 14:05
Witam,
próbuję skomunikować xmega32e5 z lcd (sterownik hd44780) z zainstalowanym konwerterem i2c pcf8574. LCD pod Uno działa. Pod xmegę jakoś mi to nie teges.. Napisałem prosty skaner i2c czy w ogóle mi wykrywa lcd-ka. I wykrywa. Kod skanera:
Program do lcd tak wygląda:
Sprzętowo sda, scl rezystorami podciągnięte pod 3v3. Skaner wykrywa adres &H4E, ale dołączony program do wyświetlenia czegokolwiek już nic nie pokazuje.. Może znowu coś przeoczyłem?
Pozdrawiam,
Marcin
próbuję skomunikować xmega32e5 z lcd (sterownik hd44780) z zainstalowanym konwerterem i2c pcf8574. LCD pod Uno działa. Pod xmegę jakoś mi to nie teges.. Napisałem prosty skaner i2c czy w ogóle mi wykrywa lcd-ka. I wykrywa. Kod skanera:
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "xm32e5def.dat"
- $crystal = 32000000 '32MHz
- $hwstack = 64
- $swstack = 40
- $framesize = 40
- Config Osc = Enabled , 32mhzosc = Enabled 'We use internal 32MHz
- Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 'Internal 32MHz, no prescaler
- dim twi_start as byte
- Dim Adrs As Word
- Dim Row As Word
- Config Com1 = 9600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
- Open "COM1:" For Binary As #1
- Config Scl = Portc.1
- Config Sda = Portc.0
- Open "twic" For Binary As #2
- Config I2cdelay = 10
- Config Twic=100000
- I2Cinit #2
- For Adrs = 0 To 254 Step 2
- I2cstart #2
- I2cwbyte Adrs, #2
- If Err = 0 Then '0 device / 1 not device
- Print #1, "Found addr " ; Hex(Adrs) ; " " ; Adrs
- End If
- I2cstop #2
- Next Adrs
- Print #1,"-----"
- End
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "xm32e5def.dat"
- $crystal = 32000000 '32MHz
- $hwstack = 80
- $swstack = 60
- $framesize = 60
- $lib "bl_Lcd_i2c.lib"
- Config Osc =enabled , 32mhzosc = Enabled
- Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
- dim twi_start as byte
- Dim _lcd_e As Byte
- Dim Backlight As Byte
- Config Scl = Portc.1
- Config Sda = Portc.0
- Open "twic" For Binary As #2
- Config I2cdelay = 10
- Config Twic=100000
- I2Cinit #2
- Const Pcf_d4 = 4
- Const Pcf_d5 = 5
- Const Pcf_d6 = 6
- Const Pcf_d7 = 7
- Const Pcf_rs = 0
- Const Pcf_rw = 1
- Const Pcf_e1 = 2
- Const Pcf8574_lcd = &H4E 'Defines the address of the I/O expander for LCD
- Backlight_on Alias &H08
- Backlight_off Alias &H00
- Backlight = Backlight_on
- _lcd_e = 128
- cls
- Locate 1 , 1
- Lcd "Dystans"
- end
Pozdrawiam,
Marcin