[an error occurred while processing this directive]
Ответ: Пишу......
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Шумный 21 января 2005 г. 12:40
В ответ на: Ответ: Опиши процедуру чтения отправлено Serg__ 21 января 2005 г. 12:33

Описывать не буду - приведу исходник
I2CCONbits.SEN = 1;//Условие старт
while(I2CCONbits.SEN);//Ожидание выполнения условия Старт
I2CTRN = AdrPZU; //Отслыка контр. байта
while(I2CSTATbits.TBF);//Ожидание отсылки контр. байта
while(I2CSTATbits.ACKSTAT);//Ожидание ACK
I2CTRN = AdrInPZUH; //Отслыка старшего байта адреса
while(I2CSTATbits.TBF);//Ожидание отсылки старшего байта адреса
while(I2CSTATbits.ACKSTAT);//Ожидание ACK
I2CTRN = AdrInPZUL; //Отслыка младшего байта адреса
while(I2CSTATbits.TBF); //Ожидание отсылки старшего байта адреса
while(I2CSTATbits.ACKSTAT); //Ожидание ACK
I2CCONbits.RSEN = 1; //Рестарт
while(I2CCONbits.RSEN); //Ожидание выполнения "Рестарт"
I2CTRN = AdrPZU|0x1;//Чтение
while(I2CSTATbits.TBF);//Ожидание отсылки младшего байта адреса
while(I2CSTATbits.ACKSTAT); //Ожидание ACK
I2CCONbits.RCEN = 1; //Разрешение котроллеру читать данные
while(I2CCONbits.RCEN); //Ожиданеи окончания чтения
while(!I2CSTATbits.RBF);//Здесь закисает. Контроллер ждет заполнения буфера приема...
ByteReadFromPZU = I2CRCV; //Чтение буфера приема
I2CCONbits.ACKDT = 0; //NACK
I2CCONbits.ACKEN = 1; //NACK Send
while(I2CCONbits.ACKEN); //Ожидание окончания отсылки NACK
I2CCONbits.PEN = 1; //STOP
while(I2CCONbits.PEN); //Ожидание выполнения условия Стоп

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru