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 

tipke in attiny2313

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
cyber
Neznanec
Neznanec



Pridružen-a: Sre 09 Apr 2008 21:14
Prispevkov: 7
Aktiv.: 0.03
Kraj: KP

PrispevekObjavljeno: Pet Apr 03, 2009 1:48 pm    Naslov sporočila:  tipke in attiny2313 Odgovori s citatom

lp

imam težavo pri programiranju. Rad bi da ko stisnem gumb da lučke svetijo tako kot je napisano (spodaj). Ko stisnem en gumb sveti tako, problem pa je...da ko stisnem druge sveti še zmeraj enako

Koda:

$crystal = 8000000

Config Portb = Output
Config Portd = Input




If Pind.5 = 0 Then



Do
Set Portb.2
Waitms 10
Reset Portb.2

Set Portb.3
Waitms 10
Reset Portb.3

Set Portb.4
Waitms 10
Reset Portb.4

Set Portb.5
Waitms 10
Reset Portb.5

Set Portb.6
Waitms 10
Reset Portb.6

Set Portb.7
Waitms 10
Reset Portb.7
Loop

End If







If Pind.4 = 0 Then

Do
Set Portb.2
Waitms 10
Reset Portb.2

Set Portb.4
Waitms 10
Reset Portb.4

Set Portb.3
Waitms 10
Reset Portb.3

Set Portb.5
Waitms 10
Reset Portb.5

Set Portb.7
Waitms 10
Reset Portb.7

Set Portb.6
Waitms 10
Reset Portb.6

Loop
End If


If Pind.3 = 0 Then

Do
Set Portb.2
Waitms 10
Set Portb.3
Waitms 10
Set Portb.4
Reset Portb.2
Waitms 10
Set Portb.5
Reset Portb.3
Waitms 10
Set Portb.6
Reset Portb.4
Waitms 10
Set Portb.7
Reset Portb.5
Waitms 10
Reset Portb.6
Waitms 10
Set Portb.6
Waitms 10
Set Portb.5
Reset Portb.7
Waitms 10
Set Portb.4
Reset Portb.6
Waitms 10
Set Portb.3
Reset Portb.5
Waitms 10
Set Portb.2
Reset Portb.4
Waitms 10
Reset Portb.3
Reset Portb.2

Loop

End If


If Pind.2 = 0 Then
Do

Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Set Portb.6
Set Portb.7
Waitms 5
Reset Portb.2
Reset Portb.3
Reset Portb.4
Reset Portb.5
Reset Portb.6
Reset Portb.7
Waitms 5

Loop


End If
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.50
Kraj: Krško

PrispevekObjavljeno: Pet Apr 03, 2009 2:18 pm    Naslov sporočila:  Re: tipke in attiny2313 Odgovori s citatom

cyber je napisal/a:
lp

imam težavo pri programiranju. Rad bi da ko stisnem gumb da lučke svetijo tako kot je napisano (spodaj). Ko stisnem en gumb sveti tako, problem pa je...da ko stisnem druge sveti še zmeraj enako

Koda:

$crystal = 8000000

Config Portb = Output
Config Portd = Input

'postavim pull up

set pind.5
set pind.4
set pind.3
set pind.2

do 'glavna zanka
debounce pind.5,0,program1
debounce pind.4,0,program2
debounce pind.3,0,program3
debounce pind.2,0,program4
loop'


program1:
Do

debounce pind.4,0,program2 'spet preverjam tipke za nasljednje programe
debounce pind.5,0,program1
debounce pind.3,0,program3
debounce pind.2,0,program4

Set Portb.2
Waitms 10
Reset Portb.2

Set Portb.3
Waitms 10
Reset Portb.3

Set Portb.4
Waitms 10
Reset Portb.4

Set Portb.5
Waitms 10
Reset Portb.5

Set Portb.6
Waitms 10
Reset Portb.6

Set Portb.7
Waitms 10
Reset Portb.7
Loop





program2:

Do
debounce pind.5,0,program1
debounce pind.4,0,program2
debounce pind.3,0,program3
debounce pind.2,0,program4

Set Portb.2
Waitms 10
Reset Portb.2

Set Portb.4
Waitms 10
Reset Portb.4

Set Portb.3
Waitms 10
Reset Portb.3

Set Portb.5
Waitms 10
Reset Portb.5

Set Portb.7
Waitms 10
Reset Portb.7

Set Portb.6
Waitms 10
Reset Portb.6

Loop



program3:

Do

debounce pind.5,0,program1
debounce pind.4,0,program2
debounce pind.3,0,program3
debounce pind.2,0,program4

Set Portb.2
Waitms 10
Set Portb.3
Waitms 10
Set Portb.4
Reset Portb.2
Waitms 10
Set Portb.5
Reset Portb.3
Waitms 10
Set Portb.6
Reset Portb.4
Waitms 10
Set Portb.7
Reset Portb.5
Waitms 10
Reset Portb.6
Waitms 10
Set Portb.6
Waitms 10
Set Portb.5
Reset Portb.7
Waitms 10
Set Portb.4
Reset Portb.6
Waitms 10
Set Portb.3
Reset Portb.5
Waitms 10
Set Portb.2
Reset Portb.4
Waitms 10
Reset Portb.3
Reset Portb.2

Loop



Program4:
Do

debounce pind.5,0,program1
debounce pind.4,0,program2
debounce pind.3,0,program3
debounce pind.2,0,program4

Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Set Portb.6
Set Portb.7
Waitms 5
Reset Portb.2
Reset Portb.3
Reset Portb.4
Reset Portb.5
Reset Portb.6
Reset Portb.7
Waitms 5

Loop




Tole sem ti napamet popravil,preveri z delovanjem. Debounce ukaz je ukaz,ki je sestavljen z dvema IF stavkoma ,samo da je med njima približno 30ms zakasnitve. Program deluje tako,da lahko pritisneš tipko,in te bo vrgel v določen program,res pa je,da boš moral držati nekaj časa tipko,da pride na vrh programa(program1,2,itd),to pa zato ker si uporabil zakasnitve z wait ukazi. Upam,da ti bo delovalo,mogoče so kakšne napakce(sintaktične)

Prejt ti ni pa zato delalo,ker si imel znotraj IF stavka do-loop,in nikjer v do loop zanki povpraševanje po tipkah-program je vedno delal v prvi do loop zanki,oz. ob pritisjeni tipki.

_________________
Denis


Nazadnje urejal/a dkone Pet Apr 03, 2009 2:20 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
klemen88
Član
Član



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

PrispevekObjavljeno: Pet Apr 03, 2009 2:19 pm    Naslov sporočila:   Odgovori s citatom

Prva napaka, ki sem jo videl, da imaš IF stavek pred neskončno zanko ( Do )

Lp
EDIT:

Šele zdaj sem bolj pogledal in videl, da imaš xx Do in loop ukazov...

Zakaj ne narediš preprosto:


Koda:

Do

If pinx.x = 0 then

set ....
waitms xx
....
...
...
end if

if pinx.x = 0 then

set ...
..
...
...
end if

if pinx.x = 0 then

...
...
...

end if

loop


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
cyber
Neznanec
Neznanec



Pridružen-a: Sre 09 Apr 2008 21:14
Prispevkov: 7
Aktiv.: 0.03
Kraj: KP

PrispevekObjavljeno: Pet Apr 03, 2009 5:56 pm    Naslov sporočila:   Odgovori s citatom

@dkone: zdej dela, hvala


klpzm je napisal/a:
Prva napaka, ki sem jo videl, da imaš IF stavek pred neskončno zanko ( Do )

Lp
EDIT:

Šele zdaj sem bolj pogledal in videl, da imaš xx Do in loop ukazov...

Zakaj ne narediš preprosto:


Koda:

Do

If pinx.x = 0 then

set ....
waitms xx
....
...
...
end if

if pinx.x = 0 then

set ...
..
...
...
end if

if pinx.x = 0 then

...
...
...

end if

loop




to sem tudi probal ja..problem pa je..da se program od usake tipke izvede samo en krat...jaz pa bi rad da se ponavlja dokler ne pritisnem druge tipke
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 496 dni


Powered by phpBB © 2001, 2005 phpBB Group