реклама на сайте
подробности

 
 
> Обясните как сделать программу с I2C
Mapk
сообщение Mar 3 2010, 22:13
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 3-03-10
Пользователь №: 55 788



У меня есть 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А или другой? Желательно с комментариями к линиям.
Спасибо.

Сообщение отредактировал Omen_13 - Mar 5 2010, 19:48
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
firstvald
сообщение Mar 4 2010, 18:00
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 580
Регистрация: 3-06-08
Пользователь №: 38 041



Попробуйте вот так:
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 (или читаемое из памяти на порт процессора параллельно выставляется? и вам посмотреть нечем что собственно читается из памяти?)

Сообщение отредактировал Omen_13 - Mar 5 2010, 19:49
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 02:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016