Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с инициализацията на PIC12F508
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10023
Страница 1 от 1

Автор:  vikingbobi [ Сря Апр 04, 2012 9:15 pm ]
Заглавие:  Проблем с инициализацията на PIC12F508

Молбата ми е дали някой може да ми покаже как да инициализирам два входа и два изхода за PIC12F508 и как да направя конфигурационната дума?
(Пина на MCLR - може да е вход и в CONFIG как трябва да е написан за да е вътрешен и така да се ползва пина за вход)?
Имам описанието на чипа, но за съжаление и с английският ми е трудно все още и нещо пропускам.

Понеже е една банката - видях нещо като за директна команда
movlw B'........' за входове и изходи и после
TRIS 0x06 или TRIS 0x07

Тук не съм на ясно какво всъщност ще стане и кои TRIS 0x07 или TRIS 0x06 (кое за какво се ползва) да се използва.
Дано някой може да напише няколко реда за инициализация и ако може да обясни поне мъничко.
Благодаря предварително.

Автор:  Cekins [ Сря Апр 04, 2012 10:24 pm ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Имаш три варианта :

1. Да научиш китайски
2. Да научиш английски
3. Поне да се научиш да ползваш търсачките

На български има само книгите на Млад Конструктор. Които всъщност не са лошо начало.
И някой да ти напише инициализацията какво? Ти това като сам не можеш да направиш, смяташ ли че с другото ще се оправиш?

Автор:  CarBeta [ Чет Апр 05, 2012 12:17 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Има и четвърти вариант, но е много рискован да те освиркат. Питаш в MCU-BG.COM

Тия малките имат една особеност. Стойността за калибриране на вътрешния осцилатор е записана на последния адрес във флаша. Ако ползваш програматор куче марка или дадеш ОК без да разбереш какво те пита след първото програмиране затрива всичко. Та преди да го програмираш го прочети и си го запиши някъде!

При стартиране процесорчето прочита тая стойност и я слага в работния регистър. Та ако ще си на вътрешен осцилатор първия ред трябва да започва с - MOVWF OSCCAL.

Код:
START:
      MOVWF   OSCCAL
      MOVLW   B'11111001'   
      TRIS    GPIO
      MOVLW   B'00000111'
      OPTION
      ;надолу е твойта програма

Ето ти и пример за конфигурация:
__CONFIG _MCLRE_OFF & _CP_ON & _WDT_OFF & _IntRC_OSC

С тия примери, дето ти дадох, не ти отпада препоръката за четене от колегата преди мен.

Автор:  Cekins [ Чет Апр 05, 2012 9:22 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Майната му на осккал-а - той коригира в рамките на 5% - и да го затрие няма да му е фатално за разни дреболии. Пък ако е нужен по-прецизен клок не бих разчитал на вътрешния...

Автор:  vikingbobi [ Чет Апр 05, 2012 10:19 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Благодаря Ви за отговорите.
Закупих си прогаматор PICKIT2 и 2-те книги на Николай Кенаров от "Млад Конструктор".
Ползвам MPLAB 8.83
Чета доста и търсачките ползвам.....да проблем имам доста с онглийският.
Досега проблеми с PIC12F675 и PIC16F84А нямам и ги поразбрах и даже практически което съм направил работи без проблем.
Явно особеността на PIC12F508, е че няма регистър за да отидя и задам входове и изходи (както между банките при други типове контролери, който за съответните портове си имат прилежащ регистър......тук и прекъсванията са по странни за мен, като това явно става на един адрес с вектор Resset а от къде ще е един господ знае????) а това явно става с директна команда като се зареди примерно:
movlw B'00001010' ;GP1 - вход
;GP3 - вход
и се прати в
TRIS 0x06

TRIS 0x06 или TRIS 0x07 - не знам кое какво и какво означава все още (да 0х06 е шеснадесетичен адрес, но защо там???)!
За съжаление TRIS GPIO дава грешка - няма такова животно (казва)
Точно това ме озадачи и търся компетентни като Вас.
За конфигурационната дува отивам директно във файл с разширение .inc за този тип контролер и там ми дава само начина за думата ще е :
_CONFIG EQU H'FFF'
Всичко друго ми дава грешка, включително и горепосочената от колегата.
В училище се учат директно по сложните контролери, а ето че един прост такъв (доста евтин) за дребни опити за да се учиш ме спъва.
Четенето си е четене, но и добре обясняващият е безценен.......за да се разбере.
Благодаря Ви за препоръките и ще чета, но като имам нужда от едно рамо - ПИТАМ.
Още веднъж благодаря за отзивчивостта.

Автор:  CarBeta [ Чет Апр 05, 2012 10:45 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Регистъра за входове и изходи е виртуален в тоя контролер и затова се прави с TRIS. Същото важи и за OPTION.

След дефиниране на процесора в началото добави #include <p12F508.inc> и няма да ти дава грешка за GPIO и други подобни.

И пак опираме до четене. 0х06 е адреса на GPIO, затова там. 0х07 ти е първия адрес от рам'а

Автор:  a_stankov [ Съб Апр 07, 2012 7:52 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Принципно не е TRIS GPIO, а се използва TRISIO. Това е регистъра за промяна на предназначението на порта.

Автор:  CarBeta [ Съб Апр 07, 2012 8:18 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

a_stankov написа:
Принципно не е TRIS GPIO, а се използва TRISIO. Това е регистъра за промяна на предназначението на порта.


А случайно обърна ли внимание, че става въпрос за 12F508? Би ли споделил кой точно е адреса на въпросния TRISIO?

Автор:  Cekins [ Съб Апр 07, 2012 7:57 pm ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Ами то не знам струва ли си въобще да се обръща внимание на 12f508? 12F629/675 си е тотален заместител + екстри.

Автор:  vikingbobi [ Пон Апр 09, 2012 10:56 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Успешно се справих и практически тествах следното:

;GP0 - изход за биполярен транзистор
;GP1 - изход за биполярен транзистор
;GP2 - вход маса

#include<P12F508.inc>
__CONFIG _OSC_ExtRC & _WDT_OFF & _MCLRE_OFF & _CP_OFF
;
BRO EQU 0x07 ;Брояч за време BRO на адрес 07h
ORG 0x00 ;Вектор Reset
clrf GPIO ;Нулираме изходите
;********************************************
; *** Инициализация ***
;********************************************
Start movlw B'00000100' ;GP2 - вход
TRIS 0x06
;********************************************
; *** Програма ***
;********************************************

Програмата ми е нищожна, но важното е че работи.
Доволен съм от направеният опит и успеха с подкарването на 12F508.
Все пак едно бебе и да му говориш няма да те разбере.... и докато не го подхванеш и покажеш вече е друго и то ще се научи.... примерно да ХОДИ.
Благодаря Ви за одареното рамо.

Автор:  a_stankov [ Пон Апр 09, 2012 8:37 pm ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

CarBeta написа:
a_stankov написа:
Принципно не е TRIS GPIO, а се използва TRISIO. Това е регистъра за промяна на предназначението на порта.


А случайно обърна ли внимание, че става въпрос за 12F508? Би ли споделил кой точно е адреса на въпросния TRISIO?


Добре де, грешката е моя! А ти приемай по-спокойно нещата от живота :)

Автор:  CarBeta [ Вто Апр 10, 2012 8:36 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Аз съм си много спокоен, колега...

Автор:  a_stankov [ Пет Апр 13, 2012 7:30 am ]
Заглавие:  Re: Проблем с инициализацията на PIC12F508

Здраве да е, Весели празници на Всички ! :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/