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

 
 
> 16-ти, 24-х, 32=битный SPI на атмега, Возможно ли?
inventor
сообщение Jul 31 2012, 21:57
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



атмеговский SPI всего 8 бит
очень хочется передавать за раз в два-три раза больше,
пробую в обработчике прерывания (слейва) читать
дата регистр типа
...
byte[0] = SPDR;
byte[1] = SPDR;
byte[3] = SPDR;
итд.

в мастере передаю эти 24 бита за одну посылку и одним CS -
то есть перед перечаей ставлю CS, после передачи всех 24 бит убираю.
получаю в сейве правильно все, но что то меня сомнения гложат что так неправильно делать.
кто подскажет насчет этого?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Aug 1 2012, 08:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(inventor @ Aug 1 2012, 01:57) *
пробую в обработчике прерывания (слейва) читать дата регистр типа
...
byte[0] = SPDR;
byte[1] = SPDR;
byte[3] = SPDR;
итд.
....кто подскажет насчет этого?

Вот-так и читаете, не проверяя: "а, были ли второй и третий байты приняты устройством ?"
Даже немного странно, что такое работает... Вероятно, скорость передачи - максимальная.
Да, и с флагом SPIF - непонятно... По приёму первого байта и переходу на обработчик прерывания он будет сброшен... А, по приходу второго и третьего байта - кто этот флаг сбросит?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 1 2012, 10:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Палыч @ Aug 1 2012, 11:51) *
Вот-так и читаете, не проверяя: "а, были ли второй и третий байты приняты устройством ?"
Даже немного странно, что такое работает...

Согласен, что как-то странно это выглядит.

Цитата(Палыч @ Aug 1 2012, 11:51) *
Да, и с флагом SPIF - непонятно... По приёму первого байта и переходу на обработчик прерывания он будет сброшен... А, по приходу второго и третьего байта - кто этот флаг сбросит?

Никто не сбросит.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   16-ти, 24-х, 32=битный SPI на атмега   Jul 31 2012, 21:57
- - _Pasha   Наоборот, всё правильно. ЦС как раз взводится ручк...   Aug 1 2012, 07:24
- - Сергей Борщ   QUOTE (inventor @ Aug 1 2012, 00:57) но ч...   Aug 1 2012, 07:57
- - ILYAUL   Цитата _Артём_Никто не сбросит. Цитатаinventor п...   Aug 1 2012, 16:55
|- - _Артём_   Цитата(ILYAUL @ Aug 1 2012, 19:55) Он то...   Aug 1 2012, 17:30
- - ILYAUL   Так всегда же можно посидеть в прерывании , если з...   Aug 1 2012, 17:38
|- - _Артём_   Цитата(ILYAUL @ Aug 1 2012, 20:38) Так вс...   Aug 1 2012, 18:22
- - inventor   на avr freaks задал такой же вопрос-несколько прот...   Aug 2 2012, 13:36
|- - _Артём_   Цитата(inventor @ Aug 2 2012, 16:36) но к...   Aug 2 2012, 13:59
- - Dikoy   А зачем ждать В прерывании? Если приём быстрый, н...   Aug 2 2012, 17:17
|- - _Артём_   Цитата(Dikoy @ Aug 2 2012, 20:17) Если пр...   Aug 2 2012, 17:40
- - Dikoy   Ну, можно SS на INT завести Но вообще я говорил ...   Aug 2 2012, 18:23
- - ILYAUL   Цитатано прерывание spi произойдет сначала от пере...   Aug 3 2012, 03:50


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 06:54
Рейтинг@Mail.ru


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