Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

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

Пн дек 25, 2017 13:55:36

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

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-ами выбор компаратора-НА ВЫКЛЮЧЕНИЕ!!!! нахрена?....ладно переключение вход/выход....тут понятно,что после сброса лучше ему(выводу) будет если он будет в состоянии входа(что-б не поджарить его если после "ресета" там неким чудесным образом появится питалово...но вот с компаратором....ну нафига делать такую засаду?

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

Пн дек 25, 2017 14:07:51

Лучше так, микроконтроллер-то 8 битный. Так удобней визуально воспринимать.
Код:
MOVLW  b'00000111'
MOVWF  CMCON

А здесь надо код зациклить.
Код:
START  bsf GPIO,0     
goto   START

И не забудет отключить АЦП. Иначе, выводы не будут работать как цифровые.

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

Пн дек 25, 2017 14:16:28

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

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

Пн дек 25, 2017 14:32:21

Вот это все и надо ВЫЧИТЫВАТЬ при работе под ассемблером.
Кстати... по умолчанию при подаче питания компаратор включен ...
:wink:

блиин....я уже это понял.....что он включен :facepalm:

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

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

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

к тому-же на этот PIC-наверное единственный из PIC-ов есть русский перевод....а то я с ангельским языком-не очень дружу....так,проходя мимо-"хелоу-бай"......вот данный PIC и "подкупил" своей "простотой".

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

Пн дек 25, 2017 14:35:34

Получилось?

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

Пн дек 25, 2017 14:52:55

Ага....все фурычит....в железе-не собирал...попробую или вечером,или завтра на работе....но это так...."проба пера"....вообще мне нужно реализовать программно делитель на 1024....буду мучать дальше.. :solder:

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

Пн дек 25, 2017 14:57:31

Зачем программно?
Там же таймер для того имеется...
:dont_know:

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

Пн дек 25, 2017 15:06:18

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

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

конечно,все мои хотелки можно "втулить" в этот МК....но "мозгов"-пока что недостаточно для этого...по сему-начну с простого....делителя. :write:

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

Пн дек 25, 2017 15:28:39

:shock:
У PIC12F675
ДВА таймера...(Т0 и Т1).
Т0 простенький, зато Т1 (16-разрядный с возможностью использования предделителя) вполне для многих приложений подходит.
Да и Т0 8 разрядный таймер (модуль максимум 256) с 8-разрядным предделителем (смотреть tmr0 rate, а не сторожевик!) 256*256=65536 от входного сигнала...
:tea:

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

Пн дек 25, 2017 15:50:08

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

В регистр OPTION загрузите b'00110001' или b'00100001', зависит от того, по какому фронту Вам нужно срабатывание счётчика (бит выделен жирным шрифтом). Будет счётчик на 1024 на базе таймера T0. А далее обрабатываете прерывания от таймера 0 и используете куда нужно.

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

Пн дек 25, 2017 16:44:25

Кстати... по умолчанию при подаче питания компаратор включен ...
:wink:

Аналоговые функции пинов не влияют на ВЫХОДНОЙ буфер. Это имеет значение только для ВХОДНЫХ сигналов.

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

Пн дек 25, 2017 17:10:17

А далее обрабатываете прерывания от таймера 0 и используете куда нужно.


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

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

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

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

кстати....насущный вопрос....в протеусе есть возможность "прикрутить" генератор частоты(меандр) на вход осциляции МК?....так сказать,для имитации внешней синхронизации(независимый задающий генератор)?

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

Пн дек 25, 2017 17:30:33

Делайте, как Вам удобней. Со временем разберётесь.

кстати....насущный вопрос....в протеусе есть возможность "прикрутить" генератор частоты(меандр) на вход осциляции МК?
Наверно, можно.. Только в слове конфигурации укажите укажите тип генератора " EC "

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

Пн дек 25, 2017 18:08:47

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

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

блиин....какой-то капец...чё все так сложно-то? :evil:
Ответить