На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (5) « Первая ... 2 3 [4] 5  все  ( Перейти к последнему сообщению )  
    > Программирование контроллеров avr...
      Цитата Prince @
      Тем, что она не работает, а вы не знаете, почему не работает и как это исправить?
      Вы правы, не знаю, пример из ДШ. Вот и обратился к Вам за советом :rolleyes: Что в вашем понимании "отладить прогу"?
        Цитата Дмитрий @
        Что в вашем понимании "отладить прогу"?

        Наверное то же, что и у других - например, убедиться, что программа выполняет именно то, что должна выполнять по замыслу автора и именно так, как хочет автор, а не так, как получилось. :D В твоем случае - это прогнать программу в отладчике и убедиться, к примеру, что необходимый байт команды загружается в регистр передатчика USART, передатчик при этом включен, у контроллера выставлены необходимые настроечные регистры (стоп бит/восьми битовая передача/нужная скорость) настройки каанла USART. После этого откомпилироать программу передачи, залить в контроллер и посмотреть осциллографом, что "пляшет" на порту TX контроллера при попытке передачи байта. Весьма хорошо наблюдать меандры при передаче байта 55Н - так очень четко видно как нули сменяют единицы. И только после этого начинать вторую часть проекта, т.е. прием от контроллера чего то, в ответ на посланный байт команды. :D
          Цитата
          Что в вашем понимании "отладить прогу"?

          В моём - взять и отладить.
          Насколько хорошо симулятор студии умеет обращаться с USART - вопрос открытый, но в принципе, как без предварительной(и последующей, в процессе работы) отладки можно написать работающую прошивку, не очень представляю.
          Вообще, как выглядел процесс написания вами программы: вы взяли кусочек кода из ДШ, скопипастили, компилятор не выдал ошибок(или выдал, и вы как-то их исправили), то, что получилось, залили в память МК?
          Ещё один интересный вопрос - подключение последовательного порта МК ... к чему-то. К компу? Как?
          Сообщение отредактировано: Prince -
            Цитата Prince @

            Вообще, как выглядел процесс написания вами программы: вы взяли кусочек кода из ДШ, скопипастили, компилятор не выдал ошибок(или выдал, и вы как-то их исправили), то, что получилось, залили в память МК?
            Ещё один интересный вопрос - подключение последовательного порта МК ... к чему-то. К компу? Как?

            Да Вы правы... :oops: Прошу не судите строго :rolleyes: Просто с МК я пытаюсь работать только месяц и это для меня ново....
            А что значит отладит? Пройти в режиме debug? И что это даст? Можно ли отладить эту прогу на действующем МК?

            А подключение показано на снимке: программатор AVR ISP можно использовать как преобразователь USB - USART.
            Прикреплённая картинка
            Прикреплённая картинка
            Сообщение отредактировано: Дмитрий -
              Цитата
              А что значит отладит? Пройти в режиме debug? И что это даст?

              Вы сишный код под Windows дебажили? Что это вам давало?
              Медвед достаточно подробно ответил на ваш вопрос по поводу отладчика, и вы тут же задаёте его снова.
              Цитата
              Можно ли отладить эту прогу на действующем МК?

              Если программатор и МК поддерживают JTAG/PDI. На atmega8 нельзя.
              Цитата
              А подключение показано на снимке: программатор AVR ISP можно использовать как преобразователь USB - USART.

              Убедитесь в том, что преобразователь работает с TTЛ уровнями и нужной вам полярностью сигналов.
                Цитата Дмитрий @
                А подключение показано на снимке

                Да, там просто масса информации! :D
                Дмитрий, вы можите похвастаться хоть одной работающей в МК программой?
                  Цитата Alexei @
                  Дмитрий, вы можите похвастаться хоть одной работающей в МК программой?

                  Alexei, да ладно тебе... :unsure: Мы все с чего то начинали и как то учились... :D Дмитрий, поставь студию и прогони свой код в ней в режиме симулятора. В данном режиме нет необходимости в реальном подключении МК, достаточно выбрать тип контроллера и тактовую частоту. :D
                    Цитата medved_68 @
                    Alexei, да ладно тебе... Мы все с чего то начинали и как то учились

                    Так, наверно,если таким же образом, то до сих пор задавали бы здесь теже вопросы.Мы начинали с чего по проще. Есть ли уверенность в том, что все простейшие действия выполняются? Что эта штука действительно USB - USART. Что она правильно подключена, ее драйвер правильно установился... Слишком много неизвестных!
                    Начать был бы смысл с проверки ее самой на себя итд.
                    .
                      Цитата medved_68 @
                      Дмитрий, поставь студию и прогони свой код в ней в режиме симулятора. В данном режиме нет необходимости в реальном подключении МК, достаточно выбрать тип контроллера и тактовую частоту.

                      Конечно, я так и сделал: зациклил выдачу шахматки и прогнал в отладчике. Вот только не понятно: на 4-й итерации бит UDRE регистра UCSRA обнулился... :unsure:
                      После прошивки проги на ноге TX я вижу миандр на осцилографе. Проблема - считать эти данные: операция считывания с СОМ вылетела по таймауту :unsure: :wall: :wall:

                      Цитата Prince @
                      Убедитесь в том, что преобразователь работает с TTЛ уровнями и нужной вам полярностью сигналов.
                      Поясните, пожалуйста, как я могу это сделать?
                        Цитата Дмитрий @
                        операция считывания с СОМ вылетела по таймауту

                        Чем пытаешься считать?
                          Цитата medved_68 @
                          Чем пытаешься считать?
                          Средствами .net: port.ReadByte()
                            Цитата Дмитрий @
                            Средствами .net: port.ReadByte()

                            Т.е. ты наблюдаешь активность на передатчике контроллера, но до компа сия активность "не доходит", так?
                            Вариантов несколько:
                            1. Уровни ТТL (как говорил Prince). У преобразователя стандарт RS-232, у контроллера ТТL (а то и 2.6В, если питание 3В и ниже). Необходима микросхема преобразователь МАХ 232. :D
                            2. Неправильная настройка передающе-приемного канала (несовпадение скоростей/количества стоп битов/четности и.т.д. В контроллере смотри значения регистров управления USART, в net режимы открытия СОМ порта. Должно все совпадать. :D
                            3. Нерабочий переходник USB-COM. Проверка - замкнуть накоротко вывод RX с TX и средствами net открыть порт на чтение и передачу. Пробовать передавать байт, прием должен сработать. Если этого нет - смотри пристально на преобразователь. :D
                              Цитата medved_68 @
                              Т.е. ты наблюдаешь активность на передатчике контроллера, но до компа сия активность "не доходит", так?

                              Да именно :yes-sad:

                              Скажите, а может такое быть, что я просто в цикле без задержки гоню эту шахматку и сто и старт биты накладываються?
                                Цитата Дмитрий @
                                Скажите, а может такое быть, что я просто в цикле без задержки гоню эту шахматку и сто и старт биты накладываються?

                                Нет, так быть не может. :D Вот это:
                                Цитата Дмитрий @
                                Вот только не понятно: на 4-й итерации бит UDRE регистра UCSRA обнулился... :unsure:

                                говорит о том, что ты совершенно не проверяешь бит окончания передачи, а пихаешь данные в передатчик, совершенно наплевав на то, передал он или нет данные, справляется ли он или как. Так нельзя. :D
                                  Цитата medved_68 @
                                  ...говорит о том, что ты совершенно не проверяешь бит окончания передачи, а пихаешь данные в передатчик, совершенно наплевав на то, передал он или нет данные, справляется ли он или как. Так нельзя.
                                  Та нет! Я его как раз и проверяю!
                                  ExpandedWrap disabled
                                    ...
                                    while( !( UCSRA & (1<<UDRE)) )
                                                ;
                                            UDR = 0x55;
                                    ...
                                  А когда поставил задержкку между посылками 10 мс, на осцилографе увидил пакет USART, не просто меандр! И проблем с сбросом бита (на 4-й итерации бит UDRE регистра UCSRA обнулился) нет!
                                  А вот когда ставлю задержку 5 мс, то эта проблема появляется... :unsure:
                                  И переходник USB-COM работает - что послал, то принял...
                                  Подскажите какую-нибудь стандартную прогу для обмена с СОМ.
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0829 ]   [ 18 queries used ]   [ Generated: 25.04.24, 15:10 GMT ]