Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

krmiljenje releja
Pojdi na stran Prejšnja  1, 2, 3, 4
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Samogradnje
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Ned Nov 07, 2004 8:25 am    Naslov sporočila: Hm, sedaj si me pa našel nepripravljenega! Odgovori s citatom

Sedaj pa si me našel nepripravljenega. NI kaj, moram priznati, da v tem načinu še nisem uporabljal TImerja. In tudi testirati ne morem, ker nimam programatorja, a to bo v nekaj dneh urejeno, tedaj bom testiral timer v tem načinu
Do takrat pa malo potrpljenja, prosim

Pozdrav
Vilko

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Profesionalec


Pridružen/-a: Tor Jan 2004 16:44
Prispevkov: 181
Kraj: Mozirje

PrispevekObjavljeno: Ned Nov 07, 2004 10:50 am    Naslov sporočila: Odgovori s citatom

uporabi raje namesto load ukaza kar
counter0 = vrednost

_________________
Bad things happen to good people all the time for no reason!
Štrom: http://www.red-mamba.com & http://www.red-mamba.biz
Prosti čas: http://www.maddogs-clan.org
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
marcelo
Novinec


Pridružen/-a: Tor Okt 2004 12:07
Prispevkov: 9

PrispevekObjavljeno: Ned Nov 07, 2004 1:27 pm    Naslov sporočila: pomožna rešitev Odgovori s citatom

pozdravvljeni
Tudi sam se trudim da najdem rešitev. na asembler se ne spoznam dosti ( vem da je zelo koristen).Za silo bi rabil rešitev za dva atmela. torej ločena programa za vsakega . Eden naj menjava impulze vsakih 122 mikro sekund drugi pa kretek impulz 50 mikro sekund vsake 4 sekunde.
Ploščico sem že naredil tudi za to varianto, dokler ne najdemo rešitve.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Tor Nov 09, 2004 10:04 am    Naslov sporočila: Počakaj še kakšen dan Odgovori s citatom

Počakaj še kakšen dan. Programator sem že popravil. Danes moram nekam ven, tako da se bom šele popoldan ali zvečer ukvarjal s tem.
Vilko

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Tor Nov 09, 2004 4:48 pm    Naslov sporočila: Tako! Program dela! Odgovori s citatom

Program sem testiral na testni plošči BASCOM.
Impulze s polperiodo 122 usec sem gledal na osciloskopu (stari škatli iz časov elektronk). 4sekundni impulz sem opazoval na led diodi, dolžino impulza sem ustrezno podaljšal, da se to da opazovati na led diodi. V pravem programu je potrebno le konstanto, ki jo polniš v akumulator ustreno spremeniti.

Koda je sledeča:

Koda:


$regfile = "89c2051.dat"
$crystal = 12000000
'  inicializacija - nastavimo parametre za timer interrupt
' Če je frekvenca krislata f je timerenota 12/f

' Do prekinitve pride po
'      1 timerenot   krat vrednost load pri mode je  2
'     32 timerenot   krat vrednost load pri mode je  0
'    256 timerenot   krat vrednost load pri mode je  1
'

Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Titi122
Load Timer0 , 122
Start Timer0
Enable Timer0

Enable Interrupts
' Za časovno konstanto 4 sekunde bomo uporabili timer1:
' 4 sek = 4 000 000 usec / 256 = 15625
'              15625 / 125 = 125

Config Timer1 = Timer , Gate = Internal , Mode = 1
On Timer1 Titi4sec
Load Timer1 , 125
Start Timer1
Enable Timer1

Enable Interrupts

Dim Stevec1 As Byte
Pin4sec Alias P3.3
Do
  If Stevec1 > 124 Then
     Stevec1 = Stevec1 - 125
     ' Pin4sec = Not Pin4sec                                    'če uporabljam alias ime - ne dela!
     P3.3 = Not P3.3
  End If
  If P3.3 = 1 Then
     ' trajanje impulza na 10 msec, lahko opazujemo na led diodi
'     Waitms 10
     ' če pa želimo trajanje 50 usec potem si moramo pomagati z assemblerjem:

     $asm
     mov a,#255  'nastavi število zank
     djnz a,*-0  'odštevaj do ničle, vsakokrat porabiš 2 usec
     $end Asm

     Reset P3.3
  End If
Loop



Titi4sec:
'Vsakih 125 * 256 usec smo v tej rutini
' povečamo stanje števca in ponovno napolnimo timer
Load Timer1 , 125
Incr Stevec1
Return

Pin122us Alias P3.0
Titi122:
'Vsakih 122 usec se aktivira  rutina titi122 in njena naloga je, da
'preklopi bit pin122:
Pin122us = Not Pin122us
' V mode=2 je autoreload vključen v hardware
Return



Pri tem sem opazil da
Uporaba alias včasih dela, včasih ne.
Med tem ko uporaba aliasa pin122us ni bila problematična,
je program stekel šele, ko sem se odrekel uporabe alias imena za
pin4sec in je stekel šele, ko sem namesto le tega uporabil direktno ime pina p3.3
To bi sicer lahko rekli, da gre za napako prevajalnika, toda ni šans, da bi avtor to popravil, saj je bascom8051 nehal negovati že pred kakima dvema letoma.


Opomba:
Assemblerska instrukcija
mov a,#255 'nastavi število zank
določa število, kolikokrat naj se izvede sledeča assemblerska instrukcija
djnz a,*-0 'odštevaj do ničle, vsakokrat porabiš 2 usec
kjer spet ni bil zadovoljen z assemblerskim naslovom *, temveč sem moral namesto le tega zapisati *-0
Vsako izvajanje instrukcije djnz porabi 2 usec
Če torej hočeš točno 50 usec, tedaj bi bilo potrebno pogledati, koliko mikrosekund vzamejo instrukcijo
If P3.3 = 1 Then
in nato razliko dodati še v enotah po 2 usec v instrukcijo
mov a, #
namesto številke 255. Mislim, da bi bila številka 20 kar dovolj blizu. Ne vem, koliko natančno je važno, da je dolžina impulza točno 50 usec

Pa lepo naprej.
Vilko[/quote][/list]

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Profesionalec


Pridružen/-a: Pon Jan 2004 17:52
Prispevkov: 181
Kraj: Kobarid

PrispevekObjavljeno: Tor Nov 09, 2004 5:35 pm    Naslov sporočila: Odgovori s citatom

No to sicer ne spada povsem zraven, ampak mislim da je na mestu.
Kot je ze Vilko povedal se bascom ne razvija vec. Ze sedaj moram kup stvari dopisovati sam z assemblerjem... Crying or Very sad
Sedaj obstaja moznost da gremo nazaj na assembler oziroma na "C". Meni je zadnja moznost predcej ljubsa in bom slej ali prej presel nanjo. Problem. Pojma nimam o C-ju. Zelo lepo bi bilo, ce bi se nasel kaksen junak, ki obvlada C za 8051 in napravil kaksno malo solo... Mogoce ze obstajajo kaksne dobre knjiznice zanj itd...

_________________
Skupaj smo mocnejsi
LP Simon
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
iskra
Profesionalec


Pridružen/-a: Tor Jan 2004 16:29
Prispevkov: 254
Kraj: Sežana

PrispevekObjavljeno: Tor Nov 09, 2004 6:50 pm    Naslov sporočila: Odgovori s citatom

SimonS je napisal/a:
No to sicer ne spada povsem zraven, ampak mislim da je na mestu.
Kot je ze Vilko povedal se bascom ne razvija vec. Ze sedaj moram kup stvari dopisovati sam z assemblerjem... Crying or Very sad
Sedaj obstaja moznost da gremo nazaj na assembler oziroma na "C". Meni je zadnja moznost predcej ljubsa in bom slej ali prej presel nanjo. Problem. Pojma nimam o C-ju. Zelo lepo bi bilo, ce bi se nasel kaksen junak, ki obvlada C za 8051 in napravil kaksno malo solo... Mogoce ze obstajajo kaksne dobre knjiznice zanj itd...

Very Happy Se pridružujem , če bi bil Maribor bližje . bi izkoristil to možnost: http://www1.ozs.si/~elektroniki/forum/viewtopic.php?t=3317 / tako pa Question
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Sre Nov 10, 2004 6:34 pm    Naslov sporočila: Jaz ostajam pri Bascomu Odgovori s citatom

Jaz ostajam pri Bascomu. Seveda ni perfekten, kar tako in tako velja za vse, kar je kdajkoli človek naredil. Nova orodja prinašajo sicer nove možnosti, toda tudi nove muke: treba se jih je naučiti uporabljati, (stari ljudje se že bolj počasi učimo), najti je treba njih slabosti, (za BASCOM že poznam njegove slabosti).
Tako pa svoje probleme rešujem kar z BASCOMom še v naprej. In če kje kaj zmanjka, je tukaj še vedno stari dobri Assembler.

Sicer pa je prav, da mladci preskakujete stare!
Lepo neprej!

Vilko

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Samogradnje Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran Prejšnja  1, 2, 3, 4
Stran 4 od 4

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group