Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Задача интересует в самом общем виде. Но, видя вашу склонность к конкретизации :), предложу задачу моргания светодидом 1 раз в секунду (сигнализируя о работоспособности устройства) не прибегая к прерываниям! Очевидно, что "задержка до 2 МЦ" в этом деле несущественна. Ну, а дальше-то что? Как мне теперь событие 7-го канала превратить во что-то реальное? Есть у меня флаг PORTCFG_EVOUT_PE7_gc, ///< Event Channel 7 Output on Port E pin 7 якобы способный вывести событие на пин PE7, но что для этого надо сделать? Куда этот флаг пихать? Моя склонность к конкретизации вызвана только необходимостью сузить рамки материала для изучения )) Судя по дейташиту, функциональность Ивент Систем весьма ограничена, на вывод (и обратно) можно отмапить только из Канала 0 Ивент Систем на ножку Порт 7. Раздел 15.1 предпоследняя строка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Моя склонность к конкретизации вызвана только необходимостью сузить рамки материала для изучения )) Судя по дейташиту, функциональность Ивент Систем весьма ограничена, на вывод (и обратно) можно отмапить только из Канала 0 Ивент Систем на ножку Порт 7. Раздел 15.1 предпоследняя строка. Если вы понимаете, что там написано, то ... напишите строку кода! :) Мне уже совершенно наплевать, нулевой там номер или седьмой. Дайте хоть хоть одним глазком взглянуть на реализацию ЛЮБОГО варианта, где "Event System" дергает пином! И чтобы без всяких оговорок типа "знаю, как это делается, но вам не скажу, т.к. к вашему номеру пина это не подойдет". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Xenia, найдите описание регистра CLKEVOUT . Думаю Вам это поможет... :) PS. A1 уже не флагман. Флагман A1U... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Xenia, найдите описание регистра CLKEVOUT . Думаю Вам это поможет... :) Это я видела, оно из другой оперы - к "Event System" отношения не имеет, а просто тактовую частоту (периферийную) на пин гонит. Это совершенно не то. PS. A1 уже не флагман. Флагман A1U... Флагманом я назвала его не потому, что он самый лучший, а потому, что самый первый, тогда как A1U - лишь его немного усовершенствованная копия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Еще раз посмотрите! 13.15.4 CLKEVOUT - Clock and Event Out Register • Bit 7:6 - Reserved These bits are reserved and will always be read as one. For compatibility with future devices, always write these bits to zero when this register is written. • Bit 5:4 - EVOUT[1:0] - Event Output Port These bits decide which port the Event Channel 0 from the Event System should be output to. Pin 7 on the selected port is always used, and the CLKOUT bits must be set different from EVOUT. The pin must be configured as an output pin for the Signaling Event to be available on the pin. Table 13-7 on page 145 shows the possible configurations. • Bits 3:2 - Reserved These bits are reserved and will always be read as one. For compatibility with future devices, always write these bits to zero when this register is written. • Bit 1:0 - CLKOUT[1:0] - Clock Output Port These bits decide which port the Peripheral Clock should be output to. Pin 7 on the selected port is always used. The Clock output setting, will override the Event output setting, thus if both are enabled on the same port pin, the Peripheral Clock will be visible. The pin must be configured as an output pin for the Clock to be available on the pin. Это регистр отвечает и за вывод частоты и за событие. Table 13-7. Event Channel 0 output configurations EVOUT[1:0] Group Configuration Description 00 OFF Event out disabled 01 PC7 Event Channel 0 output on Port C pin 7 10 PD7 Event Channel 0 output on Port D pin 7 11 PE7 Event Channel 0 output on Port E pin 7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба У моих портов нет регистра CLKEVOUT :). Этот регистр из категории виртуальных портов, которые я еще не освоила (и что-то не тянет). А у простых портов типа PORTA, PORTB, PORTC, PORTD, PORTE и PORTF такого расширения нет. Скажем, такие бывают: PORTB.OUT PORTE.DIR PORTE.INTCTRL PORTE.INT1MASK PORTE.INTFLAGS PORTE.INT0MASK А вот такого не бывает: PORTE.CLKEVOUT Error[Pe136]: struct "PORT_struct" has no field "CLKEVOUT" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба А вот такого не бывает: PORTE.CLKEVOUT Error[Pe136]: struct "PORT_struct" has no field "CLKEVOUT" Ксения, ну где-то есть этот CLKEVOUT. Нужно хидер прочитать, ты ж программист. И вообще, это уже становится частным вопросом, АртемКАД вот подключился. Может сперва сами порешаем, а потом решение сюда? А если кто из форумчан знает, сам отпишется. А если у АртемКАД есть решение, то я попрошу его не говорить сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Duhas 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба хоть он и сидит рядом с виртуальными портами, но отношения к ним прямого не имеет, просто состоит вместе с ними в одной группе PORTCFG ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба хоть он и сидит рядом с виртуальными портами, но отношения к ним прямого не имеет, просто состоит вместе с ними в одной группе PORTCFG ... Не совсем вместе с ними. Просто в PORTCFG засунули в т.ч. и настройку виртуальных портов. Эдакая общая группа портов для того, что в специализированные группы не влезло, но к портам относится. Сами-же виртуальные порты отдельно в VPORTх . Хотя я так пока и не вкурил зачем они вообще нужны... В общем PORTCFG.CLKEVOUT в помощь... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба В общем PORTCFG.CLKEVOUT в помощь... 100% И у меня вопрос (дабы не плодить тем). Почему на xmega128A1U не выводится на пин clkPER4? Т.е. clkPER и clkPER2 выводится а clkPER4 нет. Пробывал при clkPER4=128MHz, clkPER2=64MHz, clkPER=32MHz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Duhas 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба т.е. при выводе просто тишина? ради эксперимента попробуйте в целом уменьшить все частоты и попробовать так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба т.е. при выводе просто тишина? Да, ноль. ради эксперимента попробуйте в целом уменьшить все частоты и попробовать так. Необходимо было имеено 128MHz на пине получить. Экспериментировать сейчас некогда, да и не актуально уже. Просто думал сталкивался ли кто с этим Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба Пробывал при clkPER4=128MHz, clkPER2=64MHz, clkPER=32MHz. А что, разве на Xmega можно частоты выше, чем 32 МГц получать? Не знала... Точнее, видела, что множитель позволяет умножать аж до 31 раз, но думала, что это для медленных кварцев сделано, а верхнюю границу в 32 МГц нарушать нельзя. Или все-таки можно? И если да, то как? И какие возможности это дает? Таймеры быстрее заработают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба К примеру clkPER4 можно использовать для увеличения точности PWM. 32МГц это верх для ядра. А к примеру на USB надо подать 48МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
navovvol 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба А что, разве на Xmega можно частоты выше, чем 32 МГц получать? Не знала... Точнее, видела, что множитель позволяет умножать аж до 31 раз, но думала, что это для медленных кварцев сделано, а верхнюю границу в 32 МГц нарушать нельзя. Или все-таки можно? И если да, то как? И какие возможности это дает? Таймеры быстрее заработают? Можно нарушать, только неизвестно, как долго проработает. У меня один опытный образец уже полтора года на 48МГц работает и полностью исправен. Работает от внешнего кварца на 8 МГц и PLL на 6. Выше поднимать удавалось, уже не помню до скольки, но потом засомневался и прекратил эксперименты, оставив на 48МГц. Нагреваний МК-ра замечено не было. Ну, а таймеры могут тактироваться вместе с CPU или через делитель, так что - да, таймеры заработают быстрее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться