Hodiny s PIC16f628 – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hodiny s PIC16f628 – Assembler – Fórum – Programujte.comHodiny s PIC16f628 – Assembler – Fórum – Programujte.com

 

22. 4. 2009   #1
-
0
-

Zdravim, mam problem s programem co ma spinat dve rele v intervalu 12 a 18 hodin a uz si vazne nevim rady co s tim. Pomoci promennych ON a OFF ( je to tam dvakrat a pomoci jumperu menim periodu) nastavuju pri kolika hodinach se ma jednotlivy rele vypnout a zapnout (porovnava nastaveny cislo s poctem hodin). V danou hodinu to sepne bez problemu, ale jakmile je treba o hodinu vice tak vypne a nemam poneti proc. Zkousel jsem to simulovat v YaPIDE, ale nejak ten programek neovlada preruseni. Myslim ze z programu by melo bejt jasny o co jde, pro prehlednost jsem ho podstatne zjednodusil (chyba je porad stejna i tak :( )
Predem dekuju za jakoukoliv pomoc.

Pozn.: misto porovnavani s hodinama to porovnava s minutama, je to kvuli testovani abych nestravil den cekanim.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
KIIV
~ Moderátor
+43
God of flame
23. 4. 2009   #2
-
0
-

To freeman-half : a co v programu jen preklapet ty promenne kdyz to projde 12h nebo 24 hodinama?
jako bude pulnoc -> neguje se vystup ... dalsi pulnoc -> neguje vystup (pripadne kdyz to bude 12h interval tak i v ten druhy cas)
- samozrejme muze byt i jiny cas nez pulnoc
byla by to stale stejna operace ale nebyla by potreba stale kontrolovat ten cas...

pripadne si preved hodinu a minutu jen na 60*hod + min a kontrolovat jestli ten cas neni uz pres 12 hodin.. + vychytat jestli to neslo pres pulnoc..

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
23. 4. 2009   #3
-
0
-

O to nejde, problem je v tom, ze i kdyz umazu vsechny (je tam jedinej jeden) prikazy co maj vypinat rele tak se to presto i tak samo vypne. nevim cim to je.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
KIIV
~ Moderátor
+43
God of flame
23. 4. 2009   #4
-
0
-

To freeman-half : pokud opravdu mas vyblokovany vse co by to mohlo vypnout, tak co se stane po restartu?
treba je nejaky ruseni pobliz

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
23. 4. 2009   #5
-
0
-

Chova se to stejne jak v nepajivym poli tak v plosnaku. V nepajivym poli mam jenom na vytupy pripojeny diody, krystal a napajeni. Cely to lezi na stole vedle LCD monitoru. Rek bych ze ruseni to nebude. Kdyby se to restartvavalo tak by mi to neseplo presne treba za 4 minuty, protoze by se to dycky vynulovalo.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
KIIV
~ Moderátor
+43
God of flame
23. 4. 2009   #6
-
0
-

no tak analytickej pristup... na kterem portu a pinu je to rele a projdi vsechny instrukce ktery tam neco zapisujou (at uz port ci pin)

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
o-lox0
Super člen
24. 4. 2009   #7
-
0
-

To freeman-half :

Od kdy je tohle
MOVLW B'11111111'
MOVWF TRISB
používáno na výstup, kde máš LED nebo relé? - Zápis do trisb a trisa máš přehozený ne?

Dál používá se instrukce swapf
org 04h
movwf W_save
movf STATUS,W -> swapf STATUS,W
movwf Sta_sav
zvlášť když jí máš úhledně na konci Intu

To by mohlo vytáhnout ze slepé uličky ;)

Nahlásit jako SPAM
IP: 85.71.152.–
24. 4. 2009   #8
-
0
-

TRISB celej vstupni a TRISA celej vystupni.
Jakmile jsem pouzil SWAPF tak mi prestal fungovat hlavni cyklus program. Takze se mi ani jedna dioda nesepne. Bohuzel porad badam co s tim.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
o-lox0
Super člen
24. 4. 2009   #9
-
0
-

Už mám jasno s těma portama ...
Ale fakt si tam zkus odstranit ten nepořádek s tim swapf-
takhle na konci:
movwf PCLATH
movf Sta_sav,w -> swapf Sta_sav,w
movwf STATUS
swapf W_save,f ; W
swapf W_save,w

To co jsem psal minule taky nech. (jak zjišťuješ že to co je teoreticky správně způsobuje zásek-kde víš že to neni něco jiného..)

A nevim, kdybys zkusil cvičně ty porty fyzicky - zapojení prohodit - myslíš že by to taky vypínalo?

Nahlásit jako SPAM
IP: 85.71.152.–
25. 4. 2009   #10
-
0
-

Vymenil jsem to nahore i dole za swapf. Funguje to porad stejne blbe :) nic se nezmenilo. Upravil jsem jeste ty porty ale stejne i pred tim uz byly v poradku. K vypnuti dojde dycky pri presuneni. Kdyz by nebylo tak by to sice nepocitalo dobu, ale inkrementaci hodin(ted minut) by to vypinalo ve spravnej cas. Davam sem aktualni verzi programu.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
o-lox0
Super člen
25. 4. 2009   #11
-
0
-

Vůbec by Neuškodilo schéma zapojení toho PICu !


Pokud ti něco podobného funguje, tozn. PIC nemáš vadný :
LIST P=16F628, R=DEC
INCLUDE<P16F628.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _XT_OSC
W_save equ 20h ; zaloha pri preruseni
Sta_sav equ 21h ; zaloha pri preruseni
PCL_sav equ 22h ; zaloha pri preruseni
FSR_sav equ 23h ; zaloha pri preruseni

dessek equ 25h
sek equ 26h
min equ 27h
hod equ 28h

on1 equ 0d
off1 equ 18d
on2 equ 0d
off2 equ 12d

c1 equ 34h
c2 equ 35h

#DEFINE REL1 PORTA,2
#DEFINE REL2 PORTA,3
#DEFINE LED1 PORTA,0
#DEFINE LED2 PORTA,1
#DEFINE JMP1 PORTB,1
#DEFINE JMP2 PORTB,2
#DEFINE TLAC PORTB,0
;-----------------------------------------------------------------------------------------------

org 00h
goto INIT

INIT BSF STATUS,RP0 ; nastaveni In / Out
MOVLW B'00000000'
MOVWF TRISA
MOVLW B'11111111'
MOVWF TRISB
BCF STATUS,RP0
BSF REL1 ;zapni rele
BSF REL2
GOTO $
END


Doporučil bych ti jednoduše za sebe to co jsi šmahem odbyl u KIIVa - KIIV

Nahlásit jako SPAM
IP: 85.71.152.–
26. 4. 2009   #12
-
0
-

Vyresil jsem to. Vychazel jsem z toho ze se to samo vypina, to znamena, ze jsem tam nechal jenom podminku ktera to bude po urcitou dobu neustale spinat. Sice nemam poneti proc to dela to co to dela, ale ted to funguje. Asi mi to nikdy neprestane vrtat hlavou, ale jelikoz to ted narychlo potrebuji mit hotovy tak jsem prisel s timhle resenim. V priloze prikladam soucasnz program. Pokud by nekdo tusil proc se to chova tak jak se chova, moc by me to zajimalo. Jinak vsem dekuji za ochotnou pomoc.

Nahlásit jako SPAM
IP: 95.82.137.–
Gentoo 4ever...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 42 hostů

Podobná vlákna

Hodiny — založil AtomicKiller

Hodiny — založil delphak

Hodiny — založil CJ

C# Atomove hodiny — založil Tessi

Analogové hodiny — založil Petr

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý