Гость химик Опубликовано 29 Февраля, 2012 в 08:27 Жалоба Поделиться Опубликовано 29 Февраля, 2012 в 08:27 (изменено) Добрый день. Вопрос такой: master устройство передает 3 байта начиная с MSB, режим 0, использую аппаратный spi, оба устройства - микроконтроллеры Atmega. Пишу в CodeVisionAVR: spi(temp_ADDR); spi(temp_MSB); spi(temp_LSB); Как принимать эти байты в slave? Изменено 4 Апреля, 2012 в 17:30 пользователем химик Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость химик Опубликовано 29 Февраля, 2012 в 15:07 Жалоба Поделиться Опубликовано 29 Февраля, 2012 в 15:07 (изменено) С работой spi разобрался. В обработчике прерывания slave написал следующее. interrupt [SPI_STC] void spi_isr(void){ static unsigned char counter_3=1; unsigned char data; data=SPDR; switch(counter_3){ case 1: {temp_ADDR=data;counter_3++;break;} case 2: {temp_MSB=data;counter_3++;break;} case 3: {temp_LSB=data;counter_3=1;break;} }; if(counter_3==1)offset=1; // разрешаем обработать полученные байты } В PROTEUSE все работает, а в железе частично. Master отсылает байты исправно, а вот slave или коверкает их, или принимает не все байты. Кто нибудь сталкивался с таким? Изменено 4 Апреля, 2012 в 17:05 пользователем химик Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость химик Опубликовано 22 Марта, 2012 в 07:48 Жалоба Поделиться Опубликовано 22 Марта, 2012 в 07:48 (изменено) . Изменено 4 Апреля, 2012 в 16:40 пользователем химик Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость химик Опубликовано 4 Апреля, 2012 в 17:07 Жалоба Поделиться Опубликовано 4 Апреля, 2012 в 17:07 Ну подскажет кто, что дделать? :smile: Уже волосы начинают седеть :smile: Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти