Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 27.06.2012, 13:38   #11
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

Сообщение от artyomugr Посмотреть сообщение
if (CLK) flags=1;
if (MISO && CLK) { data |= mask; }
if (CLK==0 && flags) { l--; flags=0; mask››=1; }
Как думаете, сколько раз при таких условиях успеет сработать?
PHP код:
if (CLK && flags==0
{
 
flags=1;
 if (
MISO && CLK) { data |= mask;  l--;  mask››=1; }
}
if (
CLK==&& flagsflags=0
Реклама:
omercury вне форума  
Сказали "Спасибо" omercury
artyomugr (27.06.2012)
Непрочитано 27.06.2012, 14:13   #12
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

В общем когда отправляю значение отличное от 0 и 255 на индикаторе отображается плавающее значение... то есть например посылаю 150 . Вижу 93.. 120.. 170.. 172. Я все же до сих пор подозреваю что где то ошибка в коде..


такой кусок вообще не работает..


void SPI_()
{



if (SS==0)
{


mask = 0x01;
l=8;
data=0;
while (mask)
{


// Тактируем


if (CLK) flags=1;
if (MISO & CLK & mask) { data |= mask; }
if (CLK==0 && flags) { flags=0; mask‹‹=1; }

}
}
artyomugr вне форума  
Непрочитано 27.06.2012, 14:19   #13
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

Сообщение от Easyrider83 Посмотреть сообщение
При переходе через половину напряжения может быть шум
Спасибо, учту. Но я сейчас испытания провожу в протеусе.
Так как смысла пока нету смотреть в железе..
Сделал уже SPI master На второй тиньке 2313 и сливаю данные. Все равно не работает должным образом..

В протеусе две тини2313 одна слейв с индикатором вторая мастер

шлю данные, на индикаторе получаю плавающее значение...
artyomugr вне форума  
Непрочитано 27.06.2012, 14:33   #14
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

omercury Изза рекламы блин! Не увидел Вашего сообщения... Спасибо Вам большое! Сейчас попробую код!
artyomugr вне форума  
Непрочитано 27.06.2012, 15:24   #15
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

Вот так работает код до 1кГц по симулятору

PHP код:

void SPI_
()    
 { 
  
  
       
   if (
SS==0
     {    

          
mask 0x01;
          
data 0
      while (
mask)
       {   
        
        if (
CLK && flags==0)  
        { 
          
         if (
MISO) { data |= mask;} 
         
flags=1
          
mask‹‹=1
        } 
        if (
CLK==0flags=0
           
       }   
       
     } 

Спасибо Вам за пример! Ваш код направил меня на путь истинный
Но в нем тоже была небольшая ошибочка.

Буду пробовать в железе.
artyomugr вне форума  
Непрочитано 27.06.2012, 18:03   #16
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,982
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

странно, но в attiny2313 есть USI - недоделок SPI/TWI и это лучше, чем полная софт-эмуляция. софт-эмуляция TWI по мотивам док Atmel экономит один вывод, а однопроводная двунаправленная сом-порта - два
jump вне форума  
Непрочитано 27.06.2012, 20:26   #17
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

Сообщение от artyomugr Посмотреть сообщение
Но в нем тоже была небольшая ошибочка.
PHP код:
if (MISO && CLK
Эта? Не ошибка - избыточность. В принципе повторная проверка клока не нужна.
А вот это
PHP код:
if (CLK==&& flagsflags=0
не ошибка. Такая конструкция делает однократный сброс флага. Хотя в данной ситуации это неважно.
Кстати, тип flags булев? Если нет, может быть и ошибкой...

Последний раз редактировалось omercury; 27.06.2012 в 20:30.
omercury вне форума  
Непрочитано 28.06.2012, 13:55   #18
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Программный SPI Slave для AVR

Сообщение от omercury Посмотреть сообщение
Эта? Не ошибка - избыточность.
Ваша правда



Сообщение от omercury Посмотреть сообщение
if (MISO && CLK) { data |= mask; l--; mask››=1; }
Вот тут ошибочка. Маска сдвигалась при единице а при нуле - нет.
А я наверное 15минут смотрел в код и думал, почему не передаются нули.. ))

Сообщение от omercury Посмотреть сообщение
А вот это

if (CLK==0 && flags) flags=0;

не ошибка. Такая конструкция делает однократный сброс флага.
Это тоже знаю. Очень полезная конструкция. Часто использую для корректной работы кнопок (без функции быстрого перебора при удержании кнопки)или для программных таймеров на низкую частоту.

Последний раз редактировалось artyomugr; 28.06.2012 в 13:58.
artyomugr вне форума  
Закрытая тема

Закладки

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с SPI AVR Basan Микроконтроллеры, АЦП, память и т.д 30 02.09.2010 17:31
AVR (168) аппаратный SPI vitecd Микроконтроллеры, АЦП, память и т.д 8 15.07.2010 02:18
P89lPC935 SPI Slave kos_ua Микроконтроллеры, АЦП, память и т.д 1 01.02.2010 12:49
Опрос АЦП через программный SPI AVR Iamuser Микроконтроллеры, АЦП, память и т.д 8 23.03.2007 18:33
Передача по PSP (Parallel Slave Port) для PIC moyaproba Микроконтроллеры, АЦП, память и т.д 6 29.11.2006 21:54


Часовой пояс GMT +4, время: 01:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot