конфигурация 001, отвечает за это 0,1 и 4 биты. Откуда она там вообще взялась то? Как ее задать явно не понятно, работать начинает только если в программе задать OSCF = 4000 или еще какое то подобное число. Что это такое вообще и почему оно не 0 и 1 как в даташите сказано?
Попробовал поставить сейчас 0, работает так же как и с 4000, если ставить 1, то горит постоянно, не мигая.
Задал 1 при этом увеличив задержку до 50000, замигало, но быстро. Получается у меня где то как то не задана переменная, отвечающая за формирование задержек, связь с частотой. Как ее задать?
И остается открытым вопрос, как же задавать в программе настройку на внешнюю или внутреннюю частоту. ---
Кажется разобрался, это задание INTIO в конфиге.
Это получается при переходе на другой пик это все поновой, и переменные уже другие? ---
Остался вопрос, где настраивается _delay на частоту
Это получается при переходе на другой пик это все поновой, и переменные уже другие?
Здесь вам дали пример задания конфигурации. Эти слова конфигурации обычно не отличаются от чипа к чипу, но меняется их состав. В таких простых МК их всего 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 вроде пишут совсем доисторический, в нем нет внутреннего источника тактов, нет флеш памяти вроде бы. Даташит для него только на английском. Разве знание низшего семейства не поможет освоить быстро и легко семейство выше?
Сейчас проблема, я просто не вижу общего у пик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го?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения