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

ruhi

Members
  • Постов

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

  • Посещение

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

  1. Вы, извиняюсь, лепите что то абстрактное! Вы попробуйте рассмотреть какую то реальную ситуацию, например ЛЕД на ноге висит, или enable-чего-то, вы как будете этой ногой управлять: pinZx, portZx, ddrZx или ЛЕДх для pinZ, portZ, ddrZ enable-чего-то для pinZ, portZ, ddrZ ??? Чего у вас тут компилятор может исправить??? Откуда компилятор узнает какая функция у вас на конкретной ноге конкретного порта висит, и зачем эту функцию различать для pinZ, portZ, ddrZ регистров управления этим портом???
  2. ruhi

    stm32f4+adc+dma+tim

    Сначала надо запустить adc+tim то есть без DMA, если даже это не получится то зачем так себя перегружать!
  3. там столько всего дофига уже, причем с многократным дублированием часто, что может быть (или не быть, или не соответствовать друг другу) что угодно, поэтому иногда проще-быстрее руками дописать то что нужно, а не ковыряться в подключенных хидерах, конфигурации-настройках проекта, не знай еще в чем. Но для начала, действительно, полезно поковыряться, чтобы знать что откуда берется.
  4. А зачем их вообще именовать вы не задумывались? чем отличается PINC1 от PINд1 или от PINе1 ... Это же просто единица. Это как в армии трава должна быть зеленой, для пинов нужны дефайны!
  5. если пины определены как PINBх, зачем искать определение PBx ??? Херней занимаетесь и людям голову морочите!
  6. дурь какая-то! У вас зачем, воЩе, в одной строчке два бита одного порта разными дефайнами обозначены??? PB0 потом PINB1 ???
  7. и эти задачи как то не вяжутся друг с другом! Вы хотите что бы вам объяснили как работает программа??? А вы знаете как работает микроконтроллер??? Это надо объяснять? Это в комментариях не уберется!!! В дипломе вы собираетесь написать как работает программа??? Но тут есть большие сомнения что она вообще работает(!), потому как индикации в ней нет, насколько я смог заметить беглым взглядом! А судя по названию индикация является одной из основных функций устройства!
  8. проверять надо все без исключения!!! Не надо надеяться что какой бы то ни было способ написания кода гарантирует вам отсутствие ошибок в этом коде!
  9. я бы убедился тогда что из сна оно на ресет не уходит, а только прерывание выполняет. Потом, слип и ватчдог могут состояние ног как то поменять - там очень внимательно надо пдф-ки читать, и даже то что кажется понятным проверять практическими экспериментами. Поэтому их надо по отдельности отлаживать, а лучше вообще будить таймером, например.
  10. а вотчдог то тут зачем??? совершенно непонятно!!! И кто у тебя процессор будит ото сна можно пояснить? Думаю развернутые ответы на эти два вопроса решат ваши проблемы.
  11. ruhi

    cbi и sbi

    да нифига не видно! как вы видите что оно не работает??? где настройки просмотрщика? еще мне странно что [р] определено после использования(я правильно понимаю?), это нормально в этой среде? или это параметр АСМа
  12. так с каким периодом ШИМ -то? и с каким разрешением? лучше бы осциллограмму показал, кто светодиодов то не видел !
  13. логированием, то есть куда то сохранять значения (желательно с какой то привязкой ко времени) и потом (после прогона) их анализировать, такая вот беда со встроенным программированием! RTOS-ы вообще никаких проблем встроенного программирования не решают, они создают впечатление что вы как будто можете работать так же как привыкли на десктопе, но это всегда обман! :(!
  14. только избавиться от FreeRTOS, эклипс тут не при чем.
  15. По общим вопросам: я не вижу свою реализацию лучше, я хотел сказать что: только по реализации, в общем случае, нельзя сказать, что пытался реализовать автор, поэтому я и не пытаюсь это угадать. по задаче: дык вы так и не описали как по вашему должна работать эта привязка, что DMA (должен?) стартует только(?) с 0 градусов (всегда?), а не с 180 градусов, или как? хотя вроде бы выяснили что стартует на самом деле АЦП, а ДМА запускается результатом АЦП, или все таки нет? (вообще пока лучше не вспоминать про ДМА - не важно как сохраняется результат АЦП, я думаю гордость от использования этой навороченной техники вас отвлекает от сути задачи ) А АЦП запускается фронтом сигнала, исходного сигнала, из которого(?) формируется(?) производный(?) сопряженный/квадратурный сигнал)??? Я думаю, если вы и это распишите, вы сами поймете в чем у вас проблема, с некоторой (потому что, это скорее всего не единственная проблема!) степенью вероятности.
  16. а - понял ! неоднозначно как то звучит :)!
  17. дык, осталось вроде как написать что НЕ Работает :)! и это кстати, интересно! Вы считаете, что все должны догадаться что у вас там было какое то требование, потому что я бы (скорее всего) написал этот код по другому, соответственно, и не стал предполагать что вы имели ввиду! И причина веская - некогда вам :)! Но это, конечно, обычное дело - большинство считает что программист должен быть экстрасенсом, должен уметь угадывать мысли по коду :)! Хотя, обычно, к себе это требование не применяют, как раз те кто требует этого от других.
  18. бадяга получается потому что вы очень НЕ-Внимательно (мягко говоря) относитесь к формулировкам, здесь например: нельзя синхронизировать АЦП относительно сигнала тем более квадратурного, вы видимо хотите привязать запуск АЦП к фронту меандра, который вы собираетесь использовать в качестве сигнала, ТОГДА вы же понимаете, что результат АЦП будет получен с некоторой задержкой относительно этого фронта, так как АЦП-требует времени, ДАЛЕЕ: Запись в буфер ДМА должна быть (очевидно) синхронизирована с получением результата АЦП (иначе что вы собрались записывать?) ДАЛЕЕ: АЦП надо повторять с некоторым периодом, с каким? А ГЛАВНОЕ: должен период АЦП быть связан с периодом меандра (другими словами есть требование целого количества отсчетов на период меандра)??? По какой формуле связь? ...
  19. Почему же периодических то??? Четверть периода ЧЕГО??? Ужас!!! Я смотрю вы готовитесь изучать преобразование Гильберта это похвально, но начать лучше с преобразований Фурье и Лапласа. Потом генерация предполагает ЦАП, а у вас почему то только АЦП, вот здесь для меня (по крайней мере) что то не сходится, тоже. А-да, конечно, вот оно новое слово в радиотехнике! Только тот кто рассуждает о фильтрации всегда может сказать что и из чего он фильтрует, для этого опять же надо изучать преобразования Фурье и Лапласа.
  20. Тут вообще ничего НЕ понятно! И похоже вы сами не понимаете что вы хотите! В чем заключается эксперимент??? Что вы хотите увидеть, какой сигнал вы хотите оцифровать, какие у него диапазоны параметров? При чем тут синхронизация с таймерами?... Это просто какое-то абстрактное нагромождение букв, стрелок и квадратиков, пока ! Соответственно задача НЕ сформулирована, и, соответственно, не может быть решена - решать пока еще нечего!
  21. Ну вы блин даЁте ! НЕТ! это то же у вас С-язык?
  22. это ж охириниеть как сложно static uchar stage = 0; static uchar regNum = 0; ISR(USART_RXC_vect) { if(stage == 0) { stage = 1; regNum =UDR; } else if(stage == 1) { stage = 0; if(regNum == 0) OCR1A=UDR; else if(regNum == 1) OCR1B=UDR; } }
  23. так отправьте 2-байта в первом номер регистра А или В, а во втором значение регистра.
×
×
  • Создать...