Diskusije : Elektronika

 Komentar
Pic16f628a interrupt
Axe
(zjakoprodavac)
27. novembar 2010. u 13.33
Jedno kratko pitanje...
Može li se izvesti eksterni interapt na portu A(pin RA3) mikrokontrolera PIC16F628A???
Hvala unapred.
SinisaJ
(Електр�)
28. novembar 2010. u 13.57
Можеш да користиш компаратор на том пину, а компаратор има интерапт.
Axe
(zjakoprodavac)
28. novembar 2010. u 14.57
Hvala Sinisa...problem sam u međuvremenu resio na drugi način,ali ovo sto predlazes zvuci zanimljivo.Nekom prilikom ću se poigrati i sa time.
Međutim,imam sad drugi problem.
Port A je znaci konfigurisan kao ulaz.Pinovi su (od RA0 do RA3) sa otpornicima od 10k povuceni prema masi i mikrokontroler treba da reaguje na logicko „1”.Impuls se dovodi preko optokeplera...e sad,kad mikrokontroler nije u podnozju merim napon koji optokepler propusti i on je lepih 5V.,kad stavim mikrokontroler na mesto dovedeni napon padne na 1,45V!? Probe radi,ucitao sam u kontroler program koji ne koristi port A nego samo izleze na portu B i sad je sve u redu...imam 5V...čim setujem port A da bude ulazni javlja mi se taj pad napona...probao sam da prespojim pinove optokeplera i dovedem direktno napon na pin mikrokontrolera ali se ništa ne desava?!
SinisaJ
(Електр�)
28. novembar 2010. u 16.14
Изгледа као да ниси конфигурисао неки регистар како треба и да ти је пин остао дефинисан као излаз или нека друга функција, рецимо референтни излаз. Прочитај пажљиво део „5.1 PORTA and TRISA Registers” у упутству за контролер. Такође и секцију о аналогним функцијама на тим пиновима.
Ниједном нисам наишао да је грешка у контролеру или упутству, увек је била нека моја глупост...
Axe
(zjakoprodavac)
28. novembar 2010. u 17.20
Da...,i kod mene je do sada uvek bilo „human error” :)
Port A sam konfigurisao sa naredbom TRISA = 1;
Dodao sam u međuvremenu i dve linije koda u asembleru
tako da deo koda za setovanje kontrolera izgleda ovako:

asm MOVLW 0x07 ; //ugasi komparatore
asm MOVWF CMCON; //IO je digitalan

TRISA = 1; //port a je ulazni
TRISB = 0; //port b je izlazni
PORTB = 0; //svi izlazi na portu b su „0”

Kao sto rekoh asemblerski deo ja dodat naknadno i kompajler je odradio bez gresaka.Na zalost sad ne mogu da isprobam...sutra ću u radionicu pa javim šta je bilo.
Axe
(zjakoprodavac)
29. novembar 2010. u 07.57
Ubacivanjem one dve linije program je proradio kako treba!!!
Istina,još uvek imam pad napona i ne mogu da ga okinem preko optokeplera,ali prespajanjem pinova i dovodjenjem 5V direktno na pin mikrokontrolera sve radi.
Danas-sutra ću da sednem i da sredim i tu ostalu „kozmetiku” i da sve finisiram.
Sinisa hvala!
SinisaJ
(Електр�)
29. novembar 2010. u 13.02
„TRISA = 1; //port a je ulazni”

Ја бих рекао да ова команда намести само RA0 као улазни.
Ако цео порт А хоћеш као улазни мислим да треба да буде:

TRISA = 0xFF

или:

TRISA = 255
Pjer
(svratio samo na 5 minuta)
29. novembar 2010. u 21.11
Sinisa „misli” mi se čini jače nego kad neko „tvdi”.

PS Hvala za onu informaciju o antenama. I meni je valjala :)
SinisaJ
(Електр�)
30. novembar 2010. u 11.43
„Мислим” је због тога што не знам који компајлер је у питању и какве су правилне синтаксе у њему. Што се тиче хвале, треба да пошаљеш хвалу људима који су написали те странице(kq6qv(ет)aol.com). Тај о антенама је потпуно бесплатан и без реклама, а стварно је фантастичан.
Axe
(zjakoprodavac)
30. novembar 2010. u 17.19
Sve komplet radi!
Da me neko sad pita zašto sam stavljao optokeplere između mikrokontrolera i TTL kola...nebih znao da mu odgovorim.
Što se kompajlera tiče,koristim MikroC.
Lep pozdrav svima!
 Komentar Zapamti ovu temu!

Looking for PomPom Keychains?
.