Да кто ж знал.... А крови попила программа много. Еще вопрос. В свойствах проекта в настройках компилятора частоту кварца или внутреннего генератора надо указывать реальную или F_CLK/4? Я попробовал указать реальную (кварц 7,3728 МГц), так переполнение таймера ровно в 4 раза быстрее по stopwatch выходят. PS. вообще меня вот это F_CLK/4 после атмела постоянно сбивает. Мало того, что изначально промахнулся с расчетом таймеров. Так еще и в настройках симулятора это надо учитывать?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
В свойствах проекта в настройках компилятора частоту кварца или внутреннего генератора надо указывать реальную или F_CLK/4?
там же английским по серому написано - частота ИНСТРУКЦИЙ (то есть СИСТЕМНАЯ частота). Про осциллятор там вообще ни слова не упомянуто. В 8-битных ПИКах системная частота в 4 раза ниже частоты осциллятора, включая возможный PLL.
меня вот это F_CLK/4 после атмела постоянно сбивает.
Патамушта Вы обращаете внимание на кварц, а не на системную частоту. Есть ПИКи с PLL, где кварц или встроенный RC сначала умножаются на 4, а потом синхронизирующий домен ядра делит ее на 4. Тогда кварц равен системной частоте. Отсюда следует, что В ЛЮБОМ СЛУЧАЕ и для ЛЮБОГО МК, включая Атмел, нужно оперировать системной частотой. А для периферии очень важно знать источник ее синхронизации. Он может быть разным, а паче настраиваемым.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Насчет русских букв и табу... Как говорится, дошло только что. Походу модули компилятора и отладчика писали разные команды и между ними не было четкого согласования. Так как компилятор свободно собирал проект не глядя на название папок на русском. А вот отладчику уже не все равно...
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Всем привет! Я пытаюсь запустить fatfs в mplabx. добавлял саму библиотеку через MCC, также через него добавлялась микрочиповская библиотека для sd карты. Все компилируется,но не работает на железе! файлы не открываются и музыка не воспроизводится. Такой же код воспроизведения,но только в компиляторе mikroC for dspic с встроенной либой для sd карт работает на ура. Почему fatfs может не открывать файлы???
СтОит ли оставаться на MplabX при переходе с пиков на авр, или студию изучать?
Я начинал с AVR и студии. Но был опыт работы с MplabX. Моё мнение, оставайтесь в Mplab. Я пробовал в нем писать под AVR и опыт был удачный.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
boxmen77, можно оставаться в MPLAB X. Только тулчейн avr-gcc лучше поставить. Можно конечно и через xc8 компилировать, тем более он всё-равно avr-gcc вызывает вроде как, но если нет Pro лицензии, он всё-равно вроде не дает оптимизацию нормальную включить. Да и как бы всё-таки на avr де-факто стандарт - GCC. Опции сборки и прочее лучше его поставить. Но если нужна симуляция, имхо студию под рукой стоит тоже иметь. Тем более она бесплатная. Можно поставить и чуть что запускать. Проект перенести с mplab x не сложно, просто даже вручную создать новый и скопировать туда исходники, быстренько выставив опции сборки нужные. Я и тем и другим пользуюсь так, но mplab нравится именно универсальностью своей - и под PIC и под AVR можно в одном месте писать.
xc8 AVR v2.20 тут народ шаманил: https://github.com/cv007/XC3216 см. xc8-avr-info.txt правда под Линукс, но похоже под Виндовс и OSX тот же принцип
А подробную инструкцию для чайников можно? Я бы подшаманил. Ибо сталкивался с ограничением размера кода.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
инструкция например находим файл cc1 с помощью objdump (есть в составе компилятора avr) ищем 'license_valid' и " .data " вычисляем адрес смещения и правим в каком нибудь редакторе бинарных файлов 0x17fe878 - 0x17f6860 = 0x8018 +011f6860 = file offset 0x11fe878 - change FFFFFFFFFFFFFFFF to 0200000000000000 и т.д.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
const int foobar = value; Это рекомендуемый способ размещения объектов во флэш-памяти.
В исходном коде C объекты, квалифицированные как const, могут быть прочитаны напрямую, используя идентификатор объекта, или косвенно, используя указатель, загруженный с адресом объекта (обсуждается ниже). Последовательность инструкций, используемых для доступа к объекту, будет зависеть от целевого устройства.
Если вы используете какое-либо устройство из семейств ATtiny или ATxmega3 , флэш-память программ отображается в пространство данных. Это означает, что код, сгенерированный компилятором для доступа к объектам, квалифицированным как const, может использовать инструкции lds или ld 8-битного AVR MCU , которые читаются из области памяти данных.
Для других устройств флэш-память не отображается в пространство данных, но альтернативные инструкции, сгенерированные компилятором, используются для чтения значения объекта. Объекты с квалификацией const могут быть расположены где угодно в доступной флэш-памяти, а последовательность чтения для доступа к ним зависит от количества сегментов флэш-памяти, реализуемых целевым устройством. Компилятор создает компактную кодовую последовательность для устройств только с одним сегментом флэш-памяти и может вызвать библиотечную процедуру, например, когда целевое устройство имеет несколько сегментов флэш-памяти.
Использование только квалификатора const для определения объектов только для чтения имеет несколько преимуществ. Он не использует какие - либо нестандартные ключевые слова C, поэтому он более компактен, тем более , что тот же синтаксис используется для определения местоположения объектов в памяти программы при компиляции для 8-битных PIC ® устройств и использовать тот же компилятор. Кроме того, опция позволяет вам контролировать, где размещаются эти объекты
Как в редакторе MPLAB X отключить фокусировку на курсоре? Ткнул я мышкой в произвольное место текста программы, а потом понадобилось мне посмотреть что-то ниже или выше, я полосу прокрутки мышью тяну, а вот фигушки. Стоит отпустить полосу прокрутки, как текст сам прокручивается назад, на место где установлен курсор. Искал по настройкам редактора и всего MPLAB, да так и не нашел где можно избавится от от этой фичи.
_________________ Астролябия-сама меряет, было бы что мерять!!!
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения