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

Re: PIC10F200 - конфигурирование чипа.

Вт сен 25, 2018 00:50:51

Serj66610 писал(а):...переходим на 5 строк вверх
:facepalm: А самому посчитать и поставить метку неужели реально сложно?
У меня нет PIC10F200 и симуляторов но, по идее, должно работать по вашему описанию из этого поста...
Проверяйте... /возможны ошибки/
Спойлер
Test16.asm
(3.8 KiB) Скачиваний: 9

Код:
   LIST   p=PIC10F200
   #include <P10F200.INC>
;----------
   __CONFIG   _WDTE_OFF&_CP_OFF&_MCLRE_OFF
;----------
TIMELEDFLASHON      equ   .13   ; *8mS
TIMECOMPRESSORON   equ   .30   ; *2sec
TIMERESTARTCOMPRESSOR   equ   .11   ; *1min
;----------
BITREG1         equ   10h   ; Bit register
CT2SEC         equ   11h   ; Counter to 2 second
CTMIN         equ   12h   ; Counter to 1 minute
CTRESTARTCOMPRESSOR   equ   13h   ; Counter to restart compressor
CTFLASHLEDON      equ   14h   ; Counter Led On
CTCOMPRESSORON      equ   15h   ; Counter Compressor On
;----------
#define   _LED      GPIO,0
#define   _COMPRESSOR   GPIO,1
#define   _TESTOUT   GPIO,2      ; Test ONLY for testing OSCCAL Data!!! 125Hz!!!
;----------
#define   _REQLEDON   BITREG1,0
#define   _REQCOMPON   BITREG1,1
;**********************************************************************      
   org 0
START
;   movlw   0      ; Manual set OSCAL data / Preset OSCAL data (if commented).
   movwf   OSCCAL
   bcf   OSCCAL,FOSC4
;----------
   movlw   b'00001000'
   movwf   GPIO
   TRIS   GPIO
;
   movlw   b'00010100'   ; TMR0: Fin = 1MHz; Prescaller = 32
   OPTION
;----------
   clrf   BITREG1
;
   movlw   TIMECOMPRESSORON
   movwf   CTCOMPRESSORON
;
   movlw   TIMELEDFLASHON
   movwf   CTFLASHLEDON
;================
MAIN
   movlw   TIMERESTARTCOMPRESSOR
   movwf   CTRESTARTCOMPRESSOR
;----------
MAIN1
   movlw   .30
   movwf   CTMIN
;----------
MAIN2
   movlw   .250
   movwf   CT2SEC
;----------
MAIN3
; Check TMR0 data (counter to 250)
   movf   TMR0,W
   btfss   STATUS,Z
   goto   MAIN3
;
   movlw   .5
   movwf   TMR0
;----------
; 125Hz
;----------
; Test ONLY for testing OSCCAL Data!!! 125Hz!!!
   bsf   _TESTOUT
   bcf   _TESTOUT
;----------
; Check counter LedON & set serv bit.
   bcf   _REQLEDON
   movf   CTFLASHLEDON,W
   btfss   STATUS,Z
   bsf   _REQLEDON
;
; Check counter CompressorON & set serv bit.
   bcf   _REQCOMPON
   movf   CTCOMPRESSORON,W
   btfss   STATUS,Z
   bsf   _REQCOMPON
;----------
; Led on/Off
   btfsc   _REQLEDON
   bsf   _LED
   btfss   _REQLEDON
   bcf   _LED
;-------
; Compressor on/Off
   btfsc   _REQCOMPON
   bsf   _COMPRESSOR
   btfss   _REQCOMPON
   bcf   _COMPRESSOR
;----------
; Dec Time LED ON (if ON)
   btfsc   _REQLEDON
   decf   CTFLASHLEDON,F
;----------
; Count to 2 second
   decfsz   CT2SEC,F
   goto   MAIN3
;----------
; 2 Sec
;----------
; REQ Led On if Compressor is ON
   movlw   TIMELEDFLASHON
   btfsc   _REQCOMPON
   movwf   CTFLASHLEDON
;----------
; Dec Time Compressor ON (if ON)
   btfsc   _REQCOMPON
   decf   CTCOMPRESSORON,F
;----------
; Count to 1 minute
   decfsz   CTMIN,F
   goto   MAIN2
;----------
; 1 Min
;----------
   decfsz   CTRESTARTCOMPRESSOR,F
   goto   MAIN1
;----------
; REQ Compressor ON
   movlw   TIMECOMPRESSORON
   movwf   CTCOMPRESSORON
   goto   MAIN
;----------
;----------
   end
На GPIO,2 выведено 125Hz для проверки константы OSCAL.
/Комментарии на "кривом eng" - это за ваше нежелание проставить метки по goto :)/

Re: PIC10F200 - конфигурирование чипа.

Вт сен 25, 2018 11:10:16

Вы сами то эту строчку в тексте понимаете?
Код:
      goto           $-6
Неужели так сложно поставить словесную метку?
Зачем, при наличии аппаратного таймера, делать программные задержки?


конечно понимаю! программу-же ведь я сам составлял...переход на 6 строк вверх и дикрементируем 1 из регистра X(которое(это значение) было вписано туда 3 строками ранее.
Блиин...ну я-же спросил,написать комментарии по каждой строкой кода или нет?....ответа-не последовало....я-же не могу читать ваши мысли :facepalm: ....счас "перерисую".

да не знаю я как "вщемить" аппаратный таймер....я-же писал....что только начинаю изучать контроллеры,то что в интернете нарыл(в свободном доступе и с объяснениями на уровне новичка)-то и применил в своем устройстве....

Аппаратный таймер у PIC10F200 штука более эфимерная, нежли полезная - прерываний то от него НЕТУ...
Он еще для подсчета длительности внешних импульсей с последующим
ОПЯТЬ ЖЕ ПРОГРАММНЫМ ОПРОСОМ сгодится. А работать с ним, как с "параллельным" основной программе генератором маркер-прерывания НЕ ПОЛУЧИТСЯ (в отличии хотя бы от ПИКов 12-16 серий).
Максимум чего с этими "козявками" сделать можно - интервалы на программных кольцевых счетчиках отрабатывать.
Поскольку что аппаратный, что программный - надо результат ПРОГРАММНО ОПРАШИВАТЬ.
Это же PIC10F200!
8)
Да и "куда ходить" принято символическими метками обозначать - компилятор сам потом просчитает адрес точки назначения и в результирующий код подставит.
PIC10F200 Не лучший выбор для начала работ/изучения... Я б рекомендовал начинать тренироваться на основе следующего:
PIC12F629
PIC16F676
PIC 16F628
Эти хотя бы "полноценные".
:beer:
Страничка с хорошей русскоязычной документацией для начинающих:
http://www.microchip.ru/lit/?mid=1x0
:write:

Re: PIC10F200 - конфигурирование чипа.

Вт сен 25, 2018 23:05:15

Я все понял!!!!!!
это оказывается не я хреновый ученик,это просто вокруг учителя...так себе.

итак...состряпал себе на работе другой код,под другую самоделку(с первой-пока оставим так как есть....появится по-больше времени(когда закончится стройка дома)-буду практически искать косяки)....написал на листочке,счас буду переносить в МП-лаб и "хексить".
будет умная кнопка для туалета....и пока переписываю,(а вдруг???...)кто-нить раньше ответит или даст дельный совет...итак,три вопроса:
1-как программно реализуется звук(например,простая "пикалка" с частотой 1кГц на "пьезик")?
2-можно-ли,все в том-же PIC10F200 используя вывод GP3(работающий только как вход),закорачивая(через кнопочку) на землю-РЕСЕТить контроллер,отправляя его в начало цикла работы(инициализацию и т.д.)?
3-как написать код,который имеет минимальную длительность для "дерганья" одной ногой,что-бы встроенным частотомером в ослике(OWON DS6062E)-глянуть частоту сигнала и посчитать частоту встроенного осцилятора,для его последующей калибровки и подгонки к "нулю"....ну например на GP0-сигнал с частотой 250кГц,или 125кГц?

Добавлено after 4 hours 36 minutes 13 seconds:
Тэээкс...код работает,так как я и предполагал...алгоритм верный,звук-нашел сам как реализовать(буззер),ресетить-пока не получилось контроллер(видимо программно такая функция отключена в конфигурации...завтра по ищу в чем косяк).....и вновь трабла с временем....1 мин. выдержка дает погрешность(в "плюс) аж целых 4,5сек.....что-то меня это уже начинает напрягать.

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

Re: PIC10F200 - конфигурирование чипа.

Ср сен 26, 2018 00:41:13

По поводу неточности времени 1 сек (4.5 сек). В даташите: меню 4.0, есть подменю 4.6. Ознакомьтесь. P.S. И плюс ко всему, частота внутреннего осциллятора зависит от таких параметров как: температура окружающей среды и питающего напряжения.

Re: PIC10F200 - конфигурирование чипа.

Ср сен 26, 2018 15:29:06

Я все понял!!!!!!
это оказывается не я хреновый ученик,это просто вокруг учителя...так себе.


Интересно, кто нибудь захочет помогать теперь? :)))

Re: PIC10F200 - конфигурирование чипа.

Ср сен 26, 2018 22:59:22

Досикус,это уже совершенно не имеет абсолютно никакого значения,по одной простой причине....ведь помощи-то и не было вовсе!

или простыми словами:
"Нельзя потерять то,чего нет".
Core-X....хорошо,посмотрю еще раз даташит.

Добавлено after 4 hours 44 minutes 10 seconds:
итак,вот "состряпал" кодик для подгонки частоты встроенного генератора
Код:
       LIST   p=10F200
       __CONFIG   0xFEB
STATUS       equ       03h
GPIO       equ       06h
OSCCAL       equ       05h   
       org 0
       bcf      OSCCAL,0
       MOVLW   b'00011010' ;1,2,3,4,5,6,7-й биты-подстройка F=99,95кГц
       MOVWF   OSCCAL       ;частоты внутреннего осцилятора
       MOVLW   b'00001000' ;GPIO,3-вход,остальные-выход
       MOVWF   GPIO       ;настраиваем порты
       TRIS   GPIO       ;настраиваем выходы
       MOVLW   b'00010000' ;настраиваем регистр OPTION,предделитель1:2,
       OPTION          ;работа с таймером0,работа по спаду фронта
;импульса,внутренний такт. сигнал для таймера0,подтягиваем выводы,будить чип
;при изменении уровня входов.
metka       bsf      GPIO,0       ;включаем вывод GP0
       nop             ;ждем 2-ю микросекунду
       nop             ;ждем 3-ю микросекунду
       nop             ;ждем 4-ю микросекунду
       nop             ;ждем 5-ю микросекунду
       bcf      GPIO,0       ;выключаем вывод GP0
       nop             ;ждем 2-ю микросекунду
       nop             ;ждем 3-ю микросекунду
       GOTO   metka       ;ждем 4-ю и 5-ю микросекунду,возврат к
       end             ;началу и зацикливание,частота 100кГц - GP0.


удалось таки наконец-то победить нестабильность :roll: ....погрешность из 10 мин. выдержки составила 1,7 сек(в железе),из которых ровно одна секунда-это "неучтеные" задержки(10 шт) по 0,1 сек.....итог-общая погрешность~0,7 сек....что на данный момент-уже вполне устраивает.....при изменении напряжения питания МК(3,7-4,1в) частота плавает от 99,87 до 99,95кГц....по температуре нестабильность пока не проверял.
до коррекции(все-нули по умолчанию-среднее значение)-частота была(в цикле этой программы)-92,54кГц.

спасибо товарищу Core-X за пинок в нужном направлении. :tea:

Re: PIC10F200 - конфигурирование чипа.

Чт сен 27, 2018 06:24:57

А может все как всегда? Не в коня корм?

Re: PIC10F200 - конфигурирование чипа.

Чт сен 27, 2018 09:42:08

У микрощипа на тему коррекции точности хода на внутреннем RC генераторе специальная апнота где-то была.
Зачем изобретать то, что прочитать предлагалось?
:dont_know:
Да и на основе RC строятся только относительно простые устройства без жестких требований к временным параметрам.
Даже те же таймеры/часики на ПИКовых делаются с кварцем (32768Гц) на тех моделях, где "полноценный" Т1 имеется (также куча апнот), это не говоря о прецизионке.
Только вот а нужна ли такая точность то?
8)
Насчет "учителей "...
Это уж АБСОЛЮТНО ... мндя...
Здесь не преподаватели вузов - обычные любители-самоучки. увидел чего интересного -
высказал СВОЕ ПРЕДСТАВЛЕНИЕ РЕШЕНИЯ и НЕ БОЛЕЕ ТОГО.
А подойдет или нет - решать вопрошавшему.
Специально кого-то учить...ФЕЕЕ...
:?
это надо в суть проекта топикстартера детально вникать и свое время попусту тратить (ежли тема уже ранее пройдена). Роскошь, которую можно позволить ежли уж совсем делать нечего или свой интерес в какой-то степени (ранее не проверенное решение к примеру) краешком зацепился.
:wink:

Re: PIC10F200 - конфигурирование чипа.

Чт сен 27, 2018 18:22:38

Ну...может и так.....в любом случае,всегда руководствуюсь простым правилом:
"кто,если не ты сделает за тебя то,что должен сделать ты?"
может и еще кому-нить(лет так через 6,5) понадобится то,что сейчас делаю я...и пройти этот путь ему будет проще.

Re: PIC10F200 - конфигурирование чипа.

Пт сен 28, 2018 09:23:00

Если хочется простой меандр получить с максимальной скоростью...
делаем классику
Код:
loop:
   movf gpio,w
   movwf tmp0
   btfss tmp0,pin_N
   bsf gpio,pin_N
   btfsc tmp0,pin_N
   bcf gpio,pin_N
 goto loop

:roll:

Re: PIC10F200 - конфигурирование чипа.

Пт сен 28, 2018 09:43:08

Это не максимальная скорость.
Максимальная получается через xorwf GPIO, f
При этом в аккуме в требуемом разряде должна быть единица.
Для ненагруженного пина отлично работает.

Re: PIC10F200 - конфигурирование чипа.

Пт сен 28, 2018 10:55:12

Да как-то боязно "чтение-модификация-запись" всему порту в явном виде давать...
:dont_know:
Другое дело ежли б mcs51/avr...
:hunger:

Re: PIC10F200 - конфигурирование чипа.

Пт сен 28, 2018 11:00:15

bcf/bsf ничем от ксора в порту не отличаются. Та же ЧМЗ.

Re: PIC10F200 - конфигурирование чипа.

Пт сен 28, 2018 11:17:11

Привычнее с промежуточным буфером манипуляции делать при последующем выводе в порт.
А так да - вобщем-то то же самое что и с xor получилось... немножко тупанул...
:oops:

Re: PIC10F200 - конфигурирование чипа.

Пт ноя 02, 2018 18:10:55

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

не та конфигурация?
тогда,как сконфигурировать GP3 непосредственно для сброса МК?

схема-вот такая,куда нужен RESET....код еще не слепил,только алгоритм прописал
Вложения
1234.jpg
(113.17 KiB) Скачиваний: 326

Re: PIC10F200 - конфигурирование чипа.

Пт ноя 02, 2018 19:22:12

В конфигурационной строке, MCLR надо включить, тогда будет работать внешний сброс. Ну а дальше все по датошиту.

Re: PIC10F200 - конфигурирование чипа.

Пт ноя 02, 2018 19:59:23

Ага....счас попробую..

...таакс...включил...сбрасывает :) ...ток "КЗ" по выводу MCLR-118мкА....такой вопрос...это-ток внутреннего подтягивающего резистора?
можно его уменьшить,"навесив" внешний резюк...например 5 МОм(и отключить внутренний на ~32кОм)?....и если можно-насколько минимальным он может быть(например...реально-ли реализовать "сенсорную" кнопку? или все-же придется ставить полевик(на место кнопки RESET с затвором в качестве сенсора?

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

Насколько длительным может быть "КЗ" вывода MCLR ?....не повредит-ли это МК?....например часы,сутки,недели?

вот такая схема.....

и вот такой код на нее:
Код:
       LIST   p=10F200
       __CONFIG   0xFFFB
STATUS       equ       03h
GPIO       equ       06h
OSCCAL       equ       05h      
Reg_1       equ       10h
Reg_2       equ       11h
Reg_3       equ       12h
Reg_4       equ       13h
RegX       equ       14h
RegY       equ       15h
RegZ       equ       16h      
       org 0
       bcf      OSCCAL,0
       MOVLW   b'00011010'
       MOVWF   OSCCAL
       MOVLW   b'00001000'
       MOVWF   GPIO
       TRIS   GPIO
       MOVLW   b'00010000'
       OPTION
       MOVLW   .10
       MOVWF   RegY
       MOVLW   .12
       MOVWF   RegZ
       BSF      GPIO,2
       call   delay100mSBYZZER
       call   delay1min
       decfsz   RegY,F
       goto   $-3
       BCF      GPIO,2
       call   delay100mSBYZZER
       call   delay5S
       decfsz   RegZ,F
       goto   $-3
       MOVLW   .5
       MOVWF   RegZ
       call   delay100mSBYZZER
       call   delay1S
       decfsz   RegZ,F
       goto   $-3
       BSF      GPIO,0
       goto   $-1
delay500mkS       movlw       .166
          movwf       Reg_1
          decfsz      Reg_1,F
          goto        $-1
          nop
          return
delay100mSBYZZER    movlw       .100
          movwf       RegX
          BSF      GPIO,1
          call   delay500mkS
          BCF      GPIO,1
          call   delay500mkS
          decfsz   RegX,F
          goto   $-5
          return
delay1S          movlw       .173
          movwf       Reg_1
          movlw       .19
          movwf       Reg_2
          movlw       .6
          movwf       Reg_3
          decfsz      Reg_1,F
          goto        $-1
          decfsz      Reg_2,F
          goto        $-3
          decfsz      Reg_3,F
          goto        $-5
          nop
          nop         
          return
delay5S          movlw       .110
          movwf       Reg_1
          movlw       .94
          movwf       Reg_2
          movlw       .26
          movwf       Reg_3
          decfsz      Reg_1,F
          goto        $-1
          decfsz      Reg_2,F
          goto        $-3
          decfsz      Reg_3,F
          goto        $-5
          nop
          return
delay1min       movlw       .69
          movwf       Reg_1
          movlw       .98
          movwf       Reg_2
          movlw       .49
          movwf       Reg_3
          movlw       .2
          movwf       Reg_4
          decfsz      Reg_1,F
          goto        $-1
          decfsz      Reg_2,F
          goto        $-3
          decfsz      Reg_3,F
          goto        $-5
          decfsz      Reg_4,F
          goto        $-7
          return
          end
Вложения
1234.jpg
(73.6 KiB) Скачиваний: 302

Re: PIC10F200 - конфигурирование чипа.

Сб ноя 03, 2018 18:38:53

Вы даташитя явно не смотрели. Создается впечатления, что вы либо ленивый, либо вас в гугле и в яндексе забанили. Если нет, то загуглите MCLR pic и посмотрите на картинки.

Re: PIC10F200 - конфигурирование чипа.

Пн ноя 05, 2018 18:06:10

Вчера целый вечер искал по иннету....но так ничего и не нашел....видимо все-же бан по ай-пи стоит на некоторые информационные моменты(например не могу найти ответ как уничтожить все человечество разом).

Re: PIC10F200 - конфигурирование чипа.

Пт ноя 30, 2018 22:35:10

Вопрос все еще актуален....реально-ли вход МК использовать ка сенсорный контакт для сброса МК к началу инициализации,или нужен полевик с затвором в качестве "сенсорной пластины"?
Ответить