www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Bascom timer za AVR 2313
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Sre Jun 30, 2010 1:12 pm    Naslov sporočila:  Bascom timer za AVR 2313 Odgovori s citatom

Pozdravljeni,

Ker sem čisti začetnik v programiranju bi vas prosil za malo pomoči, po prebiranju dokumentacije sem spravil skupaj naslednji program, ki pa ne dela po mojih željah in sicer:
$regfile = "2313def.dat"
$crystal = 3686400

Config Portd.2 = Input
Config Portd.3 = Input
Config Portb.0 = Output
Config Portd.6 = Output
Config Debounce = 40

Main:
Do
Debounce Pind.2 , 1 , Prog , Sub
Debounce Pind.3 , 1 , Program , Sub

Loop

Prog:
Set Portd.6
Wait 5
Wait 5
Reset Portd.6
Return

Program:
Set Portb.0
Wait 3
Reset Portb.0
Return

probal sem tugi goto, pa še vedno ni delalo tako kot sem hotel.

Torej moja zahteva je bila, da naredim dve tipki in z vsako lahko vklopim svojo luč za določen čas ampak v mojem primeru lahko naredim to samo za eno naenkrat, torej mi nekaj manjka.
Pa še vprašanje kako doseči daljše čase do cca 60 minut (ali dam toliko waitov da bo to cca 60 min)
Za pomoč se vam zahvaljujem

Črto
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
fluffy111
Član
Član



Pridružen-a: Sob 13 Dec 2008 21:44
Prispevkov: 351
Aktiv.: 1.75
Kraj: Ptuj

PrispevekObjavljeno: Sre Jun 30, 2010 2:33 pm    Naslov sporočila:   Odgovori s citatom

To imaš Attiny2313? Ali kaj drugega?

Lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Sre Jun 30, 2010 2:37 pm    Naslov sporočila:   Odgovori s citatom

AT90s2313 vem da je že star in ga ne delajo več vendar mi jih kar precej leži v predalih pa jih bi uporabil.

Nazadnje urejal/a crto Sre Jun 30, 2010 2:38 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lado
Član
Član



Pridružen-a: Pon 09 Feb 2004 13:22
Prispevkov: 1004
Aktiv.: 4.24
Kraj: Trbovlje

PrispevekObjavljeno: Sre Jun 30, 2010 2:38 pm    Naslov sporočila:   Odgovori s citatom

ko si v wait se program ustavi in toliko časa ne dela nič.....bo potrebno uporabit prekinitve, ali pa časovnike...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3360
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Jun 30, 2010 3:03 pm    Naslov sporočila:   Odgovori s citatom

Hm, Kako sta vezani tipki? Imata zunanje pullup upore? (Notranjih nisi vključil.)
Debounce si programiral tako, da se podprogram vključi, ko skoči napetost na tipkah gor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Obelix
Član
Član



Pridružen-a: Pon 19 Maj 2008 13:59
Prispevkov: 1881
Aktiv.: 9.04
Kraj: Maribor

PrispevekObjavljeno: Sre Jun 30, 2010 3:13 pm    Naslov sporočila:   Odgovori s citatom

crto je napisal/a:
AT90s2313 vem da je že star in ga ne delajo več vendar mi jih kar precej leži v predalih pa jih bi uporabil.


Če ti jih kakšnih 100 leži v predalih, sem zainteresiran.

LpA
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Sre Jun 30, 2010 3:36 pm    Naslov sporočila:   Odgovori s citatom

Ja pullup upori so zunanji proti masi,vklop pa se vrši proti +5V, saj tipki delujeta vendar ena po ena torej ko vklopim prvo mora najprej biti tisti čas(wait) mimo da lahko ponovno prvo ali drugo, to je moj problem.

Ja valda jih ni ravno 100 je pa jih kar nekaj.

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3360
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Jun 30, 2010 4:26 pm    Naslov sporočila:   Odgovori s citatom

crto je napisal/a:
Ja pullup upori so zunanji proti masi,vklop pa se vrši proti +5V, saj tipki delujeta vendar ena po ena torej ko vklopim prvo mora najprej biti tisti čas(wait) mimo da lahko ponovno prvo ali drugo, to je moj problem.

lp


Hja, poizkusi tako: veži pull up upore proti +5V, stikala proti masi in debounce naj tudi lovi prehode na ničlo, torej drugi parameter 0.
Tako se običajno to dela.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jun 30, 2010 5:26 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
Ja pullup upori so zunanji proti masi
pullup proti masi=pulldown, razen če je VCC na masi.

Če ne želiš uporabljati prekinitev, lahko poskusiš nekaj podobnega (v programu manjkajo definicije spremenljivk):

Koda:
Main:
stevec_portd_6 = 0
stevec_portb_0 = 0

Do
Debounce Pind.2 , 1 , Prog , Sub
Debounce Pind.3 , 1 , Program , Sub

if stevec_portd_6 = 0 then Reset Portd.6
else stevec_portd_6=stevec_portd_6 - 1
end if

if stevec_portb_0 = 0 then Reset Portb.0
else stevec_portb_0 = stevec_portb_0 - 1
end if

waitms 100
Loop

Prog:
Set Portd.6
stevec_portd_6=10*5
Return

Program:
Set Portb.0
stevec_portb_0=10*5
Return
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Sre Jun 30, 2010 8:30 pm    Naslov sporočila:   Odgovori s citatom

Ja sem se spet naučil pullup in pulldown, no saj se tudi logično sliši.

Bom poskusil jutri dopoldne s tem kar ste predlagali,
ne da ne želim probati z prekinitvami - moram se najprej naučit potem pa jih z veseljem uporabim.
lp
črto
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Čet Jul 01, 2010 9:19 am    Naslov sporočila:   Odgovori s citatom

Dobro sprobal sem obrnit tipke proti masi, deluje kot je delovalo prej torej dela ena tipka po ena.

Sprobal sem tudi program ki si mi ga napisal (int47) in definiral spremenljivke na naslednji način:

Dim Stevec_portd_6 As Integer
Dim Stevec_portb_0 As Integer

pa mi javlja napake za to vrstico:

else stevec_portd_6=stevec_portd_6 - 1 in sicer invalid datatype [[0007]]

ter v naslednji vrstici:

End if in sicer If Then expected in loop expected


Probal sem tudi z Dim Stevec_portd_6 As Byte pa je enako

tukaj se mi je zdaj malo ustavilo, bom še pogledal malo te prekinitve.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Medo
Član
Član



Pridružen-a: Pet 17 Feb 2006 19:53
Prispevkov: 71
Aktiv.: 0.30
Kraj: Laško, Maribor

PrispevekObjavljeno: Čet Jul 01, 2010 11:05 am    Naslov sporočila:   Odgovori s citatom

kaj spremeni če daš:
stevec_portd_6 v Stevec_portd_6

veliki S? Imaš različno uporabo enkrat velike začetnice drugič male?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Čet Jul 01, 2010 11:20 am    Naslov sporočila:   Odgovori s citatom

Mam stalno veliko zacetnico, poglej celi program:

$regfile = "2313def.dat"
$crystal = 1000000


Dim Stevec_portd_6 As Bit
Dim Stevec_portb_0 As Bit

Config Portd.2 = Input
Config Portd.3 = Input
Config Portb.0 = Output
Config Portd.6 = Output
Config Debounce = 40


Main:
Stevec_portd_6 = 0
Stevec_portb_0 = 0

Do
Debounce Pind.2 , 1 , Prog , Sub
Debounce Pind.3 , 1 , Program , Sub

If Stevec_portd_6 = 0 Then Reset Portd.6
Else Stevec_portd_6 = Stevec_portd_6 - 1
End If

If Stevec_portb_0 = 0 Then Reset Portb.0
Else Stevec_portb_0 = Stevec_portb_0 - 1
End If

Waitms 100
Loop

Prog:
Set Portd.6
Stevec_portd_6 = 10 * 5
Return

Program:
Set Portb.0
Stevec_portb_0 = 10 * 5
Return

Se že celo jutro učim pa matram zraven
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
klemen88
Član
Član



Pridružen-a: Tor 01 Jan 2008 17:37
Prispevkov: 747
Aktiv.: 3.51
Kraj: Slovenj Gradec

PrispevekObjavljeno: Čet Jul 01, 2010 12:10 pm    Naslov sporočila:   Odgovori s citatom

Koda:

$regfile = "2313def.dat"
$crystal = 1000000


Dim Stevec_portd_6 As Byte
Dim Stevec_portb_0 As byte

Config Portd.2 = Input
Config Portd.3 = Input
Config Portb.0 = Output
Config Portd.6 = Output
Config Debounce = 40


Main:
Stevec_portd_6 = 0
Stevec_portb_0 = 0

Do
Debounce Pind.2 , 1 , Prog , Sub
Debounce Pind.3 , 1 , Program , Sub

If Stevec_portd_6 = 0 Then
Reset Portd.6
Else
Stevec_portd_6 = Stevec_portd_6 - 1
End If

If Stevec_portb_0 = 0 Then
Reset Portb.0
Else
Stevec_portb_0 = Stevec_portb_0 - 1
End If

Waitms 100
Loop

Prog:
Set Portd.6
Stevec_portd_6 = 10 * 5
Return

Program:
Set Portb.0
Stevec_portb_0 = 10 * 5
Return


Zdaj sem ti popravil program! Vedno pojdi v drugo vrstico razen, če je samo en ukaz npr.
Koda:
If ??? = 0 then set ??? 

potem ne rabiš nobenega "end if"

če pa imaš napisano kot ti...
Koda:
 
If Stevec_portd_6 = 0 Then Reset Portd.6
Else Stevec_portd_6 = Stevec_portd_6 - 1
End If

pa idi lepo vsakega v svojo vrsto, kot sem ti popravil v programu!

Druga napaka, ko dimenzioniraš spremenljivke je za BIT 0 ali 1, ti pa imaš spodaj spremenljivko
Koda:
 
Stevec_portb_0 = 10 * 5

in je že to izven BIT-a zato moraš dati BYTE, ki je od 0 - 255!

Upam, da ti bo zdaj šlo!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
crto
Član
Član



Pridružen-a: Sre 12 Jan 2005 14:48
Prispevkov: 137
Aktiv.: 0.58
Kraj: Ptuj

PrispevekObjavljeno: Čet Jul 01, 2010 1:30 pm    Naslov sporočila:   Odgovori s citatom

ja zdaj zadeva res dela

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group