Перейти к содержанию
    

VladimirYU

Свой
  • Постов

    426
  • Зарегистрирован

  • Посещение

Весь контент VladimirYU


  1. Это возможно при поочередном подключению к сети ведомых устройств, по умолчанию настроенных на default-адрес, например 127. Мастер опрашивает этот адрес, если есть ответ, то назначает специальной инструкцией устройству адрес, которого в сети еще нет (например по возрастанию, запоминая первый свободный адрес в своем ЕЕПРОМ). Устройство принимает этот адрес и запоминает его также в ЕЕПРОМ и далее откликается только на него. Способ не идеальный но на практике используется.
  2. А что не устраивает а вашем способе, или чего хотелось бы?
  3. В жизни всегда есть место экзотике, но не всегда в это место хочется попадать.
  4. А если отбросить религиозные убеждения и просто, например, ответить на единственный вопрос: "На чем я пишу ПО для МК? С, С++, ASM, Паскаль......" ИМХО все споры отпадут сами собой.
  5. Все таки поделитесь с народом, в чем была проблема и как разрешилась. Получется, что топик затеяли и все?
  6. Мда, травка зашибись была...
  7. Проверьте доходит ли ресет от прграмматора до ноги МК.
  8. Внимательно посмотрите на временные диаграммы АЦП (он Слэйвом у вас будет) (фазировка SCK, порядок передачи битов, ...) не забудьте про SS ( CS не знаю как он в Вашем АЦП называется) и сравните их и Fig. 67, 68 из DS на мегу 16. Выбирите нужную, а далее раберетесь как правильно запрограммировать SPI меги. Посмотрите в инете методы измерения амплитуды синусоиды, выбирайте подходящий для вашего случая удолетворяющий схемотехнике устройства и возможностям АЦП.
  9. Правда или ложь

    Один удар молотком - 200$ Два удара - 350 .............. Каждый десятый - бесплатно :) . Вы сами этим пользовались?
  10. Правда или ложь

    Тема неисчерпаема. Но ни от кого и ни где я не слышал слов типа: "Я делал это, и получил необходимый результат". Все на уровне слов "Хня эта защита. Китайцы, нанайцы, тайваньцы и прочие заср..цы в два счета сломают.."
  11. Что вы вкладываете в слова "мерять синусоиду"? Какой(ие) параметр(ы)?
  12. Спасибо! Все заклинило блин... Про перегрузку совсем забыл.
  13. Вопрос к знатокам С++

    Как правильно сделать? Имеется следующий код Хочется, чобы Func получала указатель на foo, как значение параметра по умолчанию.
  14. +1000. Пора, уже понять и "принять к исполнению", тот факт, что у AVR нет иного "правильного" программного сброса, кроме как с использованием WDT. Все остальное от лукавого.
  15. В симуляторе SPY от IAR аналогично.
  16. У меня один раз было на двух мегах 128-ых из одной партии: После выхода из while у SLAVE в SPDR проскакивала всякая хрень, ошибка была в бите который мастер выталкивал последним. Посмотрел осциллом передачу от Мастера и ох...ел, 7 битов вытакивались равномероно с частотой клоков, как положено, а последний бит выталкивался (и последний 8-ой клок) после паузы примерно на время передачи байта, а следующий байт сообщения от Мастера шел сразу за последним битом. У слэйва крыша съезжала. Обошел следующим образом: вставил задержку у мастера между посылками байтов - помогло. Потом в следующей версии ПО передачу от мастера сделал по прераванию от SPIF и подобной прооблемы не было. В последующих приборах проверял обе версии ПО для Мастера, больше этот косяк не всплывал. В итоге списал все на глюк в конкретной меге.
  17. Язык С объективно лучше учитывает суть и особенности программировани встроенных систем, ПАСКАЛЬ же язык изучения основ программирования для школьников и начинающих студентов (корни его именно оттуда). ИМХО, конечно, Вы найдете и освоите компилятор ПАСКАЛя, но это будет потерянное время и усилия на освоение инструмента, предназначенного изначально для других задач.
  18. Конечно, Сергей, прав :a14: В режиме С все читается нормально, был С++.
  19. Такой глюк был в версии IAR3.20C, регистры I/O оптимизатор глазом не моргнув кэшировал. Но потом в начиная с 3.20D вроде его исправили. Попробую просто с обычной переменной. То же самое
  20. Разочарую Вас. Сорри, но не умею выделять в окошке кодов:
  21. Только если выражение после ? не пустое. Евгений абсолютно прав.
  22. Если "тупо" 10 { 11 char tmp = SPCR; \ 00000000 B10D [b]IN R16, 0x0D[/b] \ 00000002 2F20 MOV R18, R16 12 13 return; \ 00000004 E000 LDI R16, 0 \ 00000006 E010 LDI R17, 0 \ 00000008 9508 RET \ 0000000A REQUIRE _A_SPCR 14 } Если с "изыском" 9 int main() \ main: 10 { 11 SPCR; 12 13 return; \ 00000000 E000 LDI R16, 0 \ 00000002 E010 LDI R17, 0 \ 00000004 9508 RET 14 } Еще один из обсуждавшихся вариантов: 9 int main() \ main: 10 { 11 [b](void)SPCR;[/b] 12 13 return; \ 00000000 E000 LDI R16, 0 \ 00000002 E010 LDI R17, 0 \ 00000004 9508 RET 14 } То же самое. Чтения нет.
  23. SPSR это регистр статуса SPI, все I/O регистры описаны в .h как VOLATILE компилятор отнюдь не старый, проверил на IAR AVR 5.10 то же самое. Может быть из-за моей неграмотности, но я так и не понял это все же баг компилятора, или если данная форма отдана стандартом на реализацию, тогда фитча.
×
×
  • Создать...