конфигурация 001, отвечает за это 0,1 и 4 биты. Откуда она там вообще взялась то? Как ее задать явно не понятно, работать начинает только если в программе задать OSCF = 4000 или еще какое то подобное число. Что это такое вообще и почему оно не 0 и 1 как в даташите сказано?
Попробовал поставить сейчас 0, работает так же как и с 4000, если ставить 1, то горит постоянно, не мигая.
Задал 1 при этом увеличив задержку до 50000, замигало, но быстро. Получается у меня где то как то не задана переменная, отвечающая за формирование задержек, связь с частотой. Как ее задать?
И остается открытым вопрос, как же задавать в программе настройку на внешнюю или внутреннюю частоту.
---
Кажется разобрался, это задание INTIO в конфиге.
Это получается при переходе на другой пик это все поновой, и переменные уже другие?
---
Остался вопрос, где настраивается _delay на частоту
Kotto писал(а):
Кажется разобрался, это задание INTIO в конфиге.
Это получается при переходе на другой пик это все поновой, и переменные уже другие?
Здесь вам дали пример задания конфигурации.
Эти слова конфигурации обычно не отличаются от чипа к чипу, но меняется их состав. В таких простых МК их всего 4-5, в навороченных же их описание в коде может целую страницу занять.
Еще загляните в раздел 4.2.2.6 мануала. Там увидите выбор частоты в случае задания внутреннего генератора в конфиге.
Почему у вас работает так, а не иначе, я не знаю, с Си я мало знаком.
Уроки Си есть на самом сайте Майкрочипа, на английском.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Можно позволю себе наглый вопрос, как теперь это перевести на пик16ф72? В нем нет встроенного источника тактов, кварц паяется на 10 и 11 ноги судя по даташиту, если я верно перевел.
Как по даташиту понять как писать конфиг? Где искать эти биты? Не силен в английском. Я написал так
Все равно хочу с пиками разобраться ) Просто с авр все прошло как то гладко, мигалку написал за день, относительно долго понимал фьюзы. Кодевизион на все контролеры как то единый код создает, ни о чем таком не думаешь.
Так и не разберусь как сопоставить даташит и конфиг, как сделать для PIC16F72 то же самое. Правильно ли ли я кварц припаял на ноги 10 и 11?
В даташите есть раздел Спешиал фичерс. Вот в нем и смотрите Конфиг.
В даташите есть и про кварц. Главное не ленится...
ЗЫ. кстати, конфиг в пиках - это и есть фьюзы. Только в пиках не бывает плохих комбинаций. При любом раскладе можно перешить.
И да, при прошивке кварц НЕ НУЖЕН. Прошивка тактируется самим программатором.
Да в этом удобство пиков над авр. Вы не подумайте что я ленив или хочу чтобы за меня все сделали, я гуглю без перерыва, ковыряю даташит постоянно. Я и не студент, изучаю для себя исключительно. Но вот что то идет не так, с ужасным скрипом. Не хотят пики со мной дружить
Сейчас проблема, я просто не вижу общего у пик16ф628 и пик16ф72, у тех же авр биты cksel везде одинаковые, посмотрел по калькулятору как их задать и готово
Последний раз редактировалось AlekseyEnergo Вс апр 13, 2014 15:45:14, всего редактировалось 1 раз.
Причина:Нарушение пункта 2.2 правил форума. Подредактировал. Предупредил!
А зачем они вам сдались? Я понимаю, если бы вы 24-е мучали - там есть кое-что интересное, но 16-ю серию... Да и логика работы кристалла у производителей контроллеров различна по степени кривизны и неочевидности. Это примерно как удобнейшие мнемоники ассемблера на Z80 и уродство, придуманное интеллом для 8080 - у их мнемоник разная идеология построения одного и того же. Да, интелл придумала свои мнемоники и процессор первой, а разработчики Z80 (свалившие, впрочем, из интелл) сделав новый процессор не могли использовать мнемоники интелл (это их собственность) и придумали свои, на порядок удачнее, логичнее и удобнее.
Помните, в АВР есть PIN и есть PORT? В PORT пишем и помним что записали, а из PIN только читаем. А что есть в старших Пиках? А вот что:
• при записи в регистр PORTx данные записываются в защелку порта;
• при записи в регистр LATx данные записываются в защелку порта;
• при чтении регистра PORTx данные читаются с вывода порта;
• при чтении регистра LATx данные читаются с защелки порта.
Зачем нужно действие "при записи в регистр PORTx данные записываются в защелку порта;"? Оно нарушает логичность операций. И кто-то мне говорил, что не всегда срабатывает такая запись (от модели зависит что ли?) - но это я не проверял.
Что-то ещё мне в них не нравилось, как и в кортексах, но уже и не помню... хотя, вот список ошибок вот не нравится.
Ну а из приятных вещей, так это большая частота с PLL, прерывания по изменению состояния входов (CN), переназначаемые функции выходов (что так и не попробовал, но идея интересная), много периферии.
Да на выбросе нашей лаборатории электроники как то углядел несколько пиков, лежали лежали, а недавно думаю почему бы и не попробовать, удачно собрал программатор, с первого раза завелся, пик16ф72 вроде пишут совсем доисторический, в нем нет внутреннего источника тактов, нет флеш памяти вроде бы. Даташит для него только на английском. Разве знание низшего семейства не поможет освоить быстро и легко семейство выше?
Kotto писал(а):Сейчас проблема, я просто не вижу общего у пик16ф628 и пик16ф72...
Как можно сделать единые конфиги у контроллеров С РАЗНОЙ ФУНКЦИОНАЛЬНОСТЬЮ?
Это ПЕРИФЕРИЯ одинакова.
Просто я сужу по АВР, у них cksel везде одни и те же, просто выставляются по разному, хотя я знаком не со столь многими авр, только тини13, 2313, мега8, 48, 88, 168 в их дип и смд исполнении и все.
Последний раз редактировалось AlekseyEnergo Вс апр 13, 2014 15:46:19, всего редактировалось 1 раз.
Причина:Нарушение пункта 2.2 правил форума. Подредактировал.
Разве знание низшего семейства не поможет освоить быстро и легко семейство выше?
Ну в чём-то, несомненно, поможет. Но быстро и легко вряд ли. И что вы называете "освоить"? Разобраться со всей периферией и тьмой её настроек (видели, сколько в кортексах настроек подтяжек в портах? )? Да зачем оно вам? Всё равно забудется и для другого кристалла названия регистров или ещё что поменяются. Кстати, названия регистров и битов есть в файлах picxxxxx.h в include у MPLab - только выберите ваш контроллер.
Просто я сужу по АВР
У них иная логика. Вот у PIC взять тот же TRIS единичка - порт на вход. А у AVR наоборот.
Ну под освоить я понимаю минимальные навыки, хотя бы научиться работать с датчиком ds18b20 и временем, уметь сделать вольтметр, причем не залить уже готовые кем то написанные, а уметь написать их самому. На авр я это могу, разобраться более менее с ацп, считать время, сделать динамическую индикацию ну и так по мелочи.
Ну под освоить я понимаю минимальные навыки, хотя бы научиться работать с датчиком ds18b20 и временем, уметь сделать вольтметр, причем не залить уже готовые кем то написанные, а уметь написать их самому. На авр я это могу, разобраться более менее с ацп, считать время, сделать динамическую индикацию ну и так по мелочи.
#pragma config FOSC=XT
где вообще посмотреть эти параметры к конкретному МК, что и к чему приравнивать, я хоть убейте не вижу в даташите слова FOSC, точнее вижу, но не понимаю как его задавать?
Я так понял у всех МК пиков есть этот FOSC, и задавать его надо в двоичном формате?
например, для pic16f628 FOSC = 0b101, типа того?
#pragma config FOSC=INTOSCIO
а вот эта INTOSCIO это просто константа, которая означает 0b101??? Я все заголовочники уже перерыл связанные с ф628 и ф72, поиск по слову FOSC в них ничего не дал.
---
А то я скоро молотком по этому пику ударю
Последний раз редактировалось AlekseyEnergo Вс апр 13, 2014 15:48:38, всего редактировалось 1 раз.
Причина:Нарушение пункта 2.2 правил форума. Подредактировал.
компилируется но на 72м отказывается работать совсем. Что тут не так? В железе все норм, взял семпл мигалки на PCWHD, скомпилировал, залил, мигает. Но там синтаксис какой то левый, по нему так и не понял как настроить. А может вообще программа не годная эта для 72го?