[an error occurred while processing this directive]
PIC18F452 ,i2c slave, нет приема - есть специалисты?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено sdv 29 июня 2006 г. 09:59

Есть программа на слэйве
void interrupt isr(void)
{
if(SSPIF && SSPIE)
{
temp = SSPBUF;
SSPOV =0;
SSPIF = 0;
RD1 = 1;

i++;

}
}


main()
{
CLRWDT();

PORTB = 0;
TRISB = 0b11111111; // all inputs
RBPU = 0; //RB to high

PORTC = 0;
TRISC = 0b10011000; // sda, scl - inputs

PORTA = 0;
TRISA = 0b00000000;

PORTD = 0;
TRISD = 0b00000000;

PORTE = 0;
TRISE = 0b00000000;



SSPEN = 1;
SSPCON2 = 0;
SSPM3 = 1; /* slave 7-bit address */
SSPM2 = 1;
SSPM1 = 1;
SSPM0 = 0;

SSPADD = 3; // ADDR_SLAVE;
CKP = 1;
// RW = 1;
SMP = 1;
CKE = 0;
SSPOV = 0;

SSPIE = 1;
PEIE = 1; /* enable interrupt periferii */
GIE = 1;

i = 0;

cycle: RD7 = 1;
CLRWDT();

if(i == 2)RD3 = 1;

if(i == 4)RD5 = 1;

RD7 = 0;
goto cycle;

}
Установил, что программа реагирует только на старт и на стоп, а на адрес и данные не реагирует. Адрес проверял осцилографом - все совпадает.Н этой же шине висит i2c расширитель порта - в него все прекрасно пишется. Сигнал на шине как в учебнике. Может, что-то не так в инициализации слэйва?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru