Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обясните как сделать программу с I2C
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Mapk
У меня есть P18F452 с помощью которого я должен собрать нужные данные и афишировать их на LCD.
Некоторую информацию нужно будет читать через bus I2C. У меня почти нет знаний в программирование
и mikroC, я смотрел пример в mikroC и тестил с 24С04А но ничего не получилось
CODE
main:
PORTB = 0
TRISB = 0
I2C1_Init(100000)
I2C1_Start()
I2C1_Wr(0xA2)
I2C1_Wr(2)
I2C1_Wr(0xAA)
I2C1_Stop()
Delay_100ms()
I2C1_Start()
I2C1_Wr(0xA2)
I2C1_Wr(2)
I2C1_Repeated_Start()
I2C1_Wr(0xA3)
PORTB = I2C1_Rd(0)
I2C1_Stop()
end.

Как я понял I2C1_Wr(0xA2) - адрес "slave" ; I2C1_Wr(2) -? ; I2C1_Wr(0xAA) - data? Как просто "read" сделать тоже не понял, пытался с TC74
Кто мог бы сделать 2 простых примера 1 с TC74 и еще 1 с памятью (write и read) 24С04А или другой? Желательно с комментариями к линиям.
Спасибо.
firstvald
Попробуйте вот так:
CODE

I2C1_Init(100000)
I2C1_Start()
I2C1_Wr(0xA0)//0 блок
I2C1_Wr(0)//0 адрес
I2C1_Wr(0xAA)//записываемый байт
I2C1_Stop()

Delay_100ms()

I2C1_Start() //указываем адрес для чтения
I2C1_Wr(0xA0)//0 блок
I2C1_Wr(0)// 0 адрес
I2C1_Repeated_Start()
I2C1_Wr(0xA1)//отдаем команду чтения
PORTB = I2C1_Rd(0)
I2C1_Stop()



только посмотреть надо напряжения какие на ножки подаются.

Не обратил внимание (на пиках не пишу):PORTB -это что? сразу в порт? Лучше обозвать эту переменную RD_BYTE (или читаемое из памяти на порт процессора параллельно выставляется? и вам посмотреть нечем что собственно читается из памяти?)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.