Автор Тема: Графический LCD RDX0154 на основе uc1601s  (Прочитано 13076 раз)

Sergey

  • Jr. Member
  • **
  • Сообщений: 84
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #40 : Март 01, 2012, 15:14:47 »
Стал ковырять точки и линии.
И оказалась проблема в макросах чтении данных с индикатора:
void i2c_idle (void); // провекра на готовность I2C к работе
char i2c_read_ack (void);   //чтение с подтвеждением
char i2c_read_noack (void);   //чтение без подтеждения
Когда убираю макрос ставит точку и рисует линии, но не совсем корректно.
mim глянь пожалуйста, корректно ли с точки зрения флоукод написаны эти макросы.
В макросе i2c_idle вместо while((SSPCON2 & 0x1F) || R_W) вместо R_W ставил 1.
Заранее благодарен.

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #41 : Март 01, 2012, 15:22:31 »
Ты пытаешься написать процедуру чтения И2С. Зачем ее писать если она есть в ФК. Пользуйся макросом MI2C_Receive_Byte.

Sergey

  • Jr. Member
  • **
  • Сообщений: 84
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #42 : Март 26, 2012, 16:31:33 »
Извините  что долго не отвечал.
Благодарю за ответ.
Все исправил - все заработало!!!!
Хотел задать вопрос не совсем по теме.
Как сделать программный SPI. Может где-то есть на форуме, вроде не нашел.
Может у кого есть пример.
Просто нужно с одного контроллера управлять SPI и I2C. Говорят, что SPI, написать легче - вот и интересуюсь.

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #43 : Март 26, 2012, 17:03:23 »
В теме про сдвиговые регистры все описано. Сдвиг байта. Там же или гдето на форуме я приводил пример, как применить программный I2C в качестве Спай. Определяешь его как программный и применяешь без старт-стоп.

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #44 : Март 27, 2012, 20:03:49 »
Sergey пишет:
Цитировать

Как сделать программный SPI. Может где-то есть на форуме, вроде не нашел.
Может у кого есть пример.

Программный спай на основе компонента I2C.
 

kindofsky

  • Full Member
  • ***
  • Сообщений: 246
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #45 : Март 27, 2012, 20:20:30 »
Привет mim, а вот это чего в пятой версии?
Это софтовый SPI?

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #46 : Март 27, 2012, 20:31:51 »
Nikolay пишет:
Цитировать
Привет mim, а вот это чего в пятой версии?
Это софтовый SPI?





Да.

Sergey

  • Jr. Member
  • **
  • Сообщений: 84
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #47 : Апрель 03, 2012, 17:22:48 »
добрый день!
народ хочет разобраться.
написан код Си
TMR0L = 0b10101010;
пишет ошибку
left operand must be l-value
что означает?

mim

  • Hero Member
  • *****
  • Сообщений: 2700
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #48 : Апрель 03, 2012, 18:29:24 »
1. Какой МК?
2. Имя регистра для ПИК маленькими буквами.
3. Как правило TMR0L - это младший байт регистра, возможно его нет или он не пределен. Смотри пункт 1.

Sergey

  • Jr. Member
  • **
  • Сообщений: 84
    • Просмотр профиля
Re:Графический LCD RDX0154 на основе uc1601s
« Ответ #49 : Апрель 03, 2012, 18:35:47 »
Благодарю за ответ!!!!!
Написал маленькими буквами и заработало.
МК PIC18F2550.