Pic12F675. не мигает светодиод:)

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

таакс...."допилил" код,методом переборов....естественно с пробами и кучей ошибок....в результате понял что(какой регистр) за что отвечает при инициализации....вот "код":

LIST p=12f675
__CONFIG 0xF1F4
STATUS equ 03h
GPIO equ 05h
CMCON equ 19h
TRISIO equ 05h
ANSEL equ 9Fh
DATA1 equ 20h
DATA2 equ 21h
DATA3 equ 22h
org 0
bcf STATUS,5
clrf GPIO
movlw b'00000111'
movwf CMCON
bsf STATUS,5
clrf ANSEL
bcf TRISIO,0
bcf TRISIO,1
bcf TRISIO,2
bcf STATUS,5
START bsf GPIO,0
bsf GPIO,1
bsf GPIO,2
movlw .13
movwf DATA1
movlw .57
movwf DATA2
movlw .16
movwf DATA3
decfsz DATA1,F
goto $-1
decfsz DATA2,F
goto $-3
decfsz DATA3,F
goto $-5
bcf GPIO,0
bcf GPIO,1
bcf GPIO,2
movlw .13
movwf DATA1
movlw .57
movwf DATA2
movlw .16
movwf DATA3
decfsz DATA1,F
goto $-1
decfsz DATA2,F
goto $-3
decfsz DATA3,F
goto $-5
GOTO START
end


возник вопрос....почему нужно сбрасывать ANSEL.....в даташите написано,что 0,1,2,3 порты "выставлены" в 1-цы.....но единицы чего?


добавлено....тьху-ты! нашел! 1-цы-это "по умолчанию" настройка этих 4-х портов на аналоговые входы.....но сцука...почему этого нигде не было указано?
и еще....мне вот чисто теоретически интересно....ну чем руководствовались разработчики,включая "по умолчанию" 1-ами выбор компаратора-НА ВЫКЛЮЧЕНИЕ!!!! нахрена?....ладно переключение вход/выход....тут понятно,что после сброса лучше ему(выводу) будет если он будет в состоянии входа(что-б не поджарить его если после "ресета" там неким чудесным образом появится питалово...но вот с компаратором....ну нафига делать такую засаду?
Ом намо Бха га ва-тэ,Васу дэва -йа.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Сообщение Core-X »

Лучше так, микроконтроллер-то 8 битный. Так удобней визуально воспринимать.

Код: Выделить всё

MOVLW  b'00000111' 
MOVWF  CMCON 

А здесь надо код зациклить.

Код: Выделить всё

START  bsf GPIO,0     
goto   START
И не забудет отключить АЦП. Иначе, выводы не будут работать как цифровые.
Для связи email: risctronix собака gmail.com
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15706
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

У современных МК понапихано весьма много дополнительной аппаратной периферии.
Посему без полного изучения статуса той периферии по включению питания (даже ежли не планируется данную периферию использовать) нужно досконально вычитывать (или выбирать для работ кристалл с меньшим количеством неиспользуемых узлов).
В даташите всегда есть страничка с данными по содержимому РСФ "по включению", сбросу и прочим критичным моментам
как по всем регистрам, так и по регистрам, касающимся соответствующего аппаратного модуля. Воть это все и надо ВЫЧИТЫВАТЬ при работе под ассемблером.
8)
Кстати... по умолчанию при подаче питания компаратор включен ...
:wink:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3268501#p3268501"]Вот это все и надо ВЫЧИТЫВАТЬ при работе под ассемблером.
Кстати... по умолчанию при подаче питания компаратор включен ...
:wink:[/uquote]
блиин....я уже это понял.....что он включен :facepalm:

даташит уже давно скачал и распечатал...."подшил"...он-RU.....читал его уже раз 10 наверное....первый раз-просто как набор букв,соединяющихся в слова....второй раз стало полегше...так с каждым перечитыванием понимания-прибавляется. :roll:

я-б использовал другой тип МК....по-проще....но вся проблема в том,что этот МК в нашем магазине самый дешевый и "ходовой" из доступных PIC-ов...его цена "всего" 1,9 у.е. другие идут уже сразу в 1,5 раза дороже....тот-же PIC12F629(урезанная версия 675-го)....как не странно,но стоит уже дороже.

"Али экспресс" открыл для себя только недавно,когда уже купил 5шт. 675-ых.....не выбрасывать-же их сейчас.... :dont_know:

к тому-же на этот PIC-наверное единственный из PIC-ов есть русский перевод....а то я с ангельским языком-не очень дружу....так,проходя мимо-"хелоу-бай"......вот данный PIC и "подкупил" своей "простотой".
Ом намо Бха га ва-тэ,Васу дэва -йа.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 428
Зарегистрирован: Вс мар 12, 2006 14:53:26
Откуда: Вологда

Сообщение Vovan555 »

Получилось?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

Ага....все фурычит....в железе-не собирал...попробую или вечером,или завтра на работе....но это так...."проба пера"....вообще мне нужно реализовать программно делитель на 1024....буду мучать дальше.. :solder:
Ом намо Бха га ва-тэ,Васу дэва -йа.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15706
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Зачем программно?
Там же таймер для того имеется...
:dont_know:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

я читал что таймер-всего на 128 ну и пред делитель на 256....

идея такая...использовать вход осциллятора,как вход "счетчика импульсов",так как где-то прочел,что максимальная частота может быть 20МГц,а минимальная....не ограниченна....т.е. в принципе,я могу подавать 1Гц импульсы на вход(ну,или 4Гц....так как один машинный цикл=4 периодам осцилляции) и на выходе появится импульс через 1024 секунды.....длительность-мне не важна,так как будет все равно интегрирующая(зарядная) цепочка по выходу,которая будет(пользователем,в ручном режиме) задавать длительность этого самого импульса,которая и будет определять время работы исполнительного устройства(двигатель).

конечно,все мои хотелки можно "втулить" в этот МК....но "мозгов"-пока что недостаточно для этого...по сему-начну с простого....делителя. :write:
Ом намо Бха га ва-тэ,Васу дэва -йа.
Друг Кота
Аватара пользователя
Сообщения: 15706
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

:shock:
У PIC12F675
ДВА таймера...(Т0 и Т1).
Т0 простенький, зато Т1 (16-разрядный с возможностью использования предделителя) вполне для многих приложений подходит.
Да и Т0 8 разрядный таймер (модуль максимум 256) с 8-разрядным предделителем (смотреть tmr0 rate, а не сторожевик!) 256*256=65536 от входного сигнала...
:tea:
Мучитель микросхем
Аватара пользователя
Сообщения: 428
Зарегистрирован: Вс мар 12, 2006 14:53:26
Откуда: Вологда

Сообщение Vovan555 »

я читал что таймер-всего на 128 ну и пред делитель на 256....
В регистр OPTION загрузите b'00110001' или b'00100001', зависит от того, по какому фронту Вам нужно срабатывание счётчика (бит выделен жирным шрифтом). Будет счётчик на 1024 на базе таймера T0. А далее обрабатываете прерывания от таймера 0 и используете куда нужно.
Друг Кота
Аватара пользователя
Сообщения: 25562
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=3268501#p3268501"]Кстати... по умолчанию при подаче питания компаратор включен ...
:wink:[/uquote]
Аналоговые функции пинов не влияют на ВЫХОДНОЙ буфер. Это имеет значение только для ВХОДНЫХ сигналов.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

[uquote="Vovan555",url="/forum/viewtopic.php?p=3268593#p3268593"]А далее обрабатываете прерывания от таймера 0 и используете куда нужно.[/uquote]

ничё не понял... :facepalm: ...это пока что слишком мудрено для меня.
решение "по-проще"-это как и писал....вход осциляции,и обычный "счетчик пауз"....выход на порт....я понимаю,что через "опу" и так никто не делает....но за то-просто....сейчас,достаточно только в конфигурации выставить режим от внешнего тактирования и просто задержку "пересобрать" на 1024 цикла,затем "открыть" выход(например тот-же GP0) и поставить 1-2 NOP-а......все!

а так мне нужно еще разбираться со сторожевым таймером,как его сконфигурировать,как "вывести прерывание на порт" и прочие нюансы.

смысл в том,что на входе PIC-а будет стоять генератор импульсов с меняющейся частотой(аппаратно и пользовательски)...так-что время между периодами на выходе порта-так-же должно меняться(например вместо 10 мин между импульсами в "нормальном" режиме-40-60 сек в режиме "регулировки".....делаю аналог ПИД-герулятора....а там(по крайней мере в моей задумке)-нужен делитель.

ладно....буду пробовать пока-что свою реализацию.

кстати....насущный вопрос....в протеусе есть возможность "прикрутить" генератор частоты(меандр) на вход осциляции МК?....так сказать,для имитации внешней синхронизации(независимый задающий генератор)?
Ом намо Бха га ва-тэ,Васу дэва -йа.
Мучитель микросхем
Аватара пользователя
Сообщения: 428
Зарегистрирован: Вс мар 12, 2006 14:53:26
Откуда: Вологда

Сообщение Vovan555 »

Делайте, как Вам удобней. Со временем разберётесь.
кстати....насущный вопрос....в протеусе есть возможность "прикрутить" генератор частоты(меандр) на вход осциляции МК?
Наверно, можно.. Только в слове конфигурации укажите укажите тип генератора " EC "
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1910
Зарегистрирован: Ср июл 15, 2015 19:03:17
Откуда: Могилев

Сообщение Serj66610 »

конфигурацию сменил,код-переписал.....не работает :dont_know:

генератор не хочет "моргать" ножкой на МК....вот такие дела.
может эту ножку(GP5 )нужно как-то по-особенному настроить? :facepalm:
или генератор какой-то особенный

блиин....какой-то капец...чё все так сложно-то? :evil:
Ом намо Бха га ва-тэ,Васу дэва -йа.
Ответить

Вернуться в «PIC»