Отговори на тема  [ 16 мнения ]  Отиди на страница 1, 2  Следваща
PORT X и TRIS X 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение PORT X и TRIS X
Здравейте, имам един въпрос отностно портовете в микроконтролерите TRIS X и PORT X. Нарочно означавам с "Х", защото въпросът ми е общ. В документацията е указано, че TRIS отговаря за посоката на данните, а чрез PORT се управляват чете/пише съответния порт. Примерно ако искам да управлявам светодиоди е необходимо да променят стойността на PORT X. Та, въпросът ми е какво точно променя физически промяната на PORT? и ако е възможно малко по-подробно обяснение за TRIS.


Нед Юли 29, 2012 2:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: PORT X и TRIS X
Не всички микроконтролери са на Майкрочип.
http://www.google.com/search?q=TRIS+pic

_________________
Warriors of the Night, ASSEMBLER!!!


Нед Юли 29, 2012 5:16 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение Re: PORT X и TRIS X
благодаря, но ще задам по-конкретен въпрос. Примерно когато дефинираме някой стандартен "TTL" порт, като вход и включим към него бутон, при натискане на бутона PORT X си променя стойността и програмно проверяваме дали е настъпила промяна в конкретният бит. Това може ли да се дефинира, като хардуерно прекъсване? т.е. всички пинове променят стойността си хардуерно / PORT X / когато са дефинирани, като вход при промяна на външното напрежение / ниско към високо или обратно /.


Нед Юли 29, 2012 9:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: PORT X и TRIS X
Зависи. Тука вече не става въпрос за принципно а за конкретно - някой могат, други не. Пък някой могат при определен фронт, други от промяна. Някой генерират общо прекъсване, някой отделно. Ама както ike казва не всички са микрочип, а аз мога да допълня че и дори и при тях всичко зависи от конретния чип.


Нед Юли 29, 2012 10:05 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: PORT X и TRIS X
Кажи ни кой контролер конкретно си харесал, са му прочетеме даташита и разгледай това: http://www.google.com/search?q=pic+debouncing

_________________
Warriors of the Night, ASSEMBLER!!!


Нед Юли 29, 2012 10:58 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение Re: PORT X и TRIS X
Ще дам пример с добре познатият PIC16F84A. Според документацията той разполага с четири източника на прекъсване.
Прекъсване от външен източник RB0 (INT), препълване на TMR0, прекъсване при промяна на PORTB (RB7:RB4) и при завършване на запис в EEPROM. В много примери съм виждал да слагат бутони примерно на (RA0 - RA4), които според документацията не подлежат на "прекъсване" т.е са стандартни изводи, а очевидно се ползват за такива цели. Възможно е аз да се бъркам и точно това действие да не се дефинира, като "прекъсвано", но какво е тогава?

редакция:
очевидно щом се ползват за бутони (RA0 - RA4), настъпва някаква променя в регистър PORTA която ние отразяваме, чрез четенето на порта.
Един вид каква е физиката в конкретната ситуация, приемаме че регистъра е "кондензатор" и при натискане на бутона той се зарежда и така се установява с единица /без да минава през процесора операцията за промяна на стойността на конкретният бит/ и ние просто го четем?


Последна промяна jorexa на Пон Юли 30, 2012 12:04 am, променена общо 2 пъти



Нед Юли 29, 2012 11:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12765
Местоположение: София
Мнение Re: PORT X и TRIS X
Приемаме, че портът е конфигуриран като вход. Ако битът който те интересува е в лог. 0, при прочитане на порта (регистъра на порта) на същия бит ще има 0. Същото е и при лог. 1.


Нед Юли 29, 2012 11:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: PORT X и TRIS X
Ами той бутона принципно не се приема като събитие нуждаещо се от незабавна обработка. Обикновенно има много по важни събития, които да ползват и без това ограничения брой външни източници на прекъсване. Затова на някакво време (10 милисекунди примерно) просто се проверяват в какво ниво са входовете. Освен това регистъра не е кондензатор :) Входа може да се разглежда като такъв (CMOS вход) но след него има и други черва. А процесора не се занимава с промяната - на входа си има тригери, които се явяват като регистър на един точно определен адрес на цпу-то. Реално всичко на което се вика "периферия" няма нужда от цпу-то за да работи (включително и портовете). Връзката и контрола им се осъществява посредством регистри които си се адресират от цпу-то (всичките) и от съответната периферия (само нейните си).


Пон Юли 30, 2012 9:58 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение Re: PORT X и TRIS X
Благодаря много за отговорите, бихте ли дали някакъв линк за подробности отностно физика на това как и защо регистрите променят стойността си при дадено външно събитие, на теоретично ниво.


Пон Юли 30, 2012 10:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение Re: PORT X и TRIS X
В документацията на така известния PIC16F84A има и схема на портовете - ако те интересува как точно се обработва сигнала - виж там.
Иначе най-просто - ако имаш високо ниво на някой извод в момента на четене от PORT X регистъра, съответния бит в регистъра е 1. Ако нивото е ниско - имаш 0.
Един вид - в момента в който прочетеш регистъра ще разбереш дали в същия момент съответния извод е в 0 или в 1. Ако пропуснеш момента - ами пропуснал си го....

Не знам защо ми се струва че задаваш въпроса много отдалеко. Задай съвсем контректно какво те интересува.


Пон Юли 30, 2012 11:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Май 29, 2007 2:23 pm
Мнения: 3714
Местоположение: Високо в планината
Мнение Re: PORT X и TRIS X
jorexa написа:
...подробности отностно физика на това как и защо регистрите променят стойността си при дадено външно събитие, на теоретично ниво.

Нещо не разбирам: искаш обяснения как работят регистрите ли?

_________________
Хайде де!


Пон Юли 30, 2012 11:40 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение Re: PORT X и TRIS X
Извинявам се, че разводних темата ще се постарая да бъда по-конкретен. Правя си разни примерни програмки с PIC и бутони. Просто исках да разбера на ниво "физика" как и защо при натискането на бутони регистъра промяна стойността си. Примерно той е кондензатор, който се пълни при натискането на бутона или каква по-точно му е магията?


Пон Юли 30, 2012 1:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Май 29, 2007 2:23 pm
Мнения: 3714
Местоположение: Високо в планината
Мнение Re: PORT X и TRIS X
Ето тук е обяснено как работят регистрите.
Особена разлика в ПРИНЦИПА на действие на регистрите няма- просто едни са вкарани в микроконтролер, а други са в отделна интегрална схема.
http://www.allaboutcircuits.com/vol_4/chpt_12/5.html

Допълнителната функционалност около краката на микроконтролера се получава, чрез включване на още карантия към тях- мултиплексори, "изтеглящи" (pull-up, pull-down) резистори, аналогови компаратори и т.н..

Особеността при тези контролери е, че понякога, за да използваш пина като цифров вход или изход, трябва предварително да изключиш някоя от аналоговата периферия, която по "дифолт" (след ресет) е включена.

Това, например, дали пина ще се конфигурира като вход или като изход зависи дали към него ще се включи съответно вход или изход на някой вътрешен регистър. Т.е. има регистър за вход, има регистър за изход.

Това е леко повърхностно обяснение. Ако искаш разяснение как точно се случват нещата в контролера- ами прочети частта IO ports на дейташита на контролера.

_________________
Хайде де!


Пон Юли 30, 2012 2:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: PORT X и TRIS X
Вече казах, че не е кондензатор. Регистъра е изграден от 8 (в повечето случаи) тригера които се установяват в 0 или 1 в зависимост от входа. Входа "физически" е съставен от някакъв логически ттл съвместим елемент след който е закачен тригера. Съответно ядрото "вижда" тези тригери като клетка (регистър) от паметта си. Ама както гледам, докато дойде времето в което наистина ще ти е от значение как е изграден физически порта, ще мине известно време. Засега по-добре се фокусирай върху това как аджеба да го хванеш тоя бутон че е натиснат и програмата ти да не реагира 200-300 пъти за едно натискане.

И като добавка - кондензатора не се пълни - той не е чаша за вода. Зарежда се...

@dan - мноо задълба в перифериите :)


Пон Юли 30, 2012 2:17 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Юли 29, 2012 2:11 pm
Мнения: 6
Мнение Re: PORT X и TRIS X
Благодаря много за разясненята! И се извинявам още веднъж за неточностите.


Пон Юли 30, 2012 2:32 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 16 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни