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 

Prekinitev v BASCOM

 
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
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Avg 10, 2004 4:36 pm    Naslov sporočila:  Prekinitev v BASCOM Odgovori s citatom

Pozdrav!

V Bascom8051 sem napisal spodnji programček. Rad pa bi napravil prekinitev, ko
pritisnem na Tipko2 v bilo katerem trenutku, da bi se If Tipka1 program ustavil-končal, ter se izvedel drugi del programa, naprimer , da postavi port P3.3 = 0.

Kako napisati ta del programa?

Koda:


Tipka1 Alias P3.0
Tipka2 Alias P3.1


Do


If Tipka1 = 0 Then
P3.3 = 1
Wait 5
P3.3 = 0
End if

Loop


LP,marko

_________________
Če ne veš kam greš, se ne moreš zgubiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Sre Avg 11, 2004 8:35 pm    Naslov sporočila:   Odgovori s citatom

Probal sem še tako kot je spodaj napisan program, pa ko pritisnem Tipko1 bi se morala izvest prekinitev v Do Loop zanki, pa se NIČ ne zgodi, kje sem napravil napako? Uporabljam procesor AT89c2051.

LP,marko
Koda:

------------------------------------------------------------

Enable Interrupts
On Int0 Tipka
Enable Int0

Tipka1 Alias P3.0
Tipka2 Alias P3.2

Do

If Tipka2 = 0 Then

   P3.3 = 0
   Wait 5
   P3.3 = 1

End If

Loop
End

Tipka:

Disable Int0

If Tipka1 = 0 Then
   P3.4 = 1
   P3.5 = 0
End If

Enable Int0
Return

_________________
Če ne veš kam greš, se ne moreš zgubiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
G-Lab
Član
Član



Pridružen-a: Sob 12 Jul 2003 9:44
Prispevkov: 179
Aktiv.: 0.76
Kraj: Jesenice

PrispevekObjavljeno: Sre Avg 11, 2004 11:17 pm    Naslov sporočila:   Odgovori s citatom

Če hočeš Pri Atmelu uporabljati vhode, tipka ali kaj drugega moraš najprej na pine vpisati 1. Ko je tipka pritisnjena steče mislim da 18mA, pri tem se napetost na izhodu sesede in zaznaš kot logično 0, če tipka ni sklenjena pa dobimo logično 1(seveda dobiš negirana stanja). Omenil bi še tole, če želiš uporabiti pine P1.0, P1.1 kot vhode, moraš obvezno vezati zunanje pull-up upore, ker sta pri procesorju AT89C2051 ta 2 pina uporabljena kot vhoda komparatorja in zato ni pull-up uporov vezanih že znottraj uP, kot na ostalih pinih.

Svetoval bi, da pred branjem tipke postaviš Tipka1=1 in Tipka2=1 potem pa prebereš tipke.

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: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Avg 12, 2004 12:16 pm    Naslov sporočila:  Prekinitve Odgovori s citatom

Stvari, ki jih lahko naredimo v zanki glavnega programa, ne delajmo s prekinitvami. Če se zanka glavnega programa dovolj hitro odvija, ni razloga, da uporabljamo prekinitve.
Prekinitve se uporabi takrat, ko je nujno takoj obdelati nek dogodek, (recimo pritisk na tipko), in prekiniti zanko glavnega programa, ki sicer počne nekaj drugega.
Tipičen primer prekinitve je serijska prekinitev pri komunikaciji preko serijskega (kako se reče slovensko bufferja) buferja. Prebrani znak je potrebno takoj spraviti na varno, sicer ga izgubimo, ali pa izgubimo znak ki prihaja za njim.
Ker je komunikacija nekaj, kar mikro dela, kot 'postransko' nalogo, sicer pa nadzoruje in upravlja po svoji logiki, zanka glavnega programa opravlja primarno nalogo mikroprocesorja, prekinitvena rutina ob prihodu znaka iz linije prekine delo glavnega programa, spravi znak, in če je to zadnji znak komandnega telegrama, ki predstavlja ukaz, ki ga mora mikroprocesor izvesti, postavi zastavico (bit), ki je ciklično izpraševan v zanki glavnega programa. Ko tako glavni program opazi, da je ukaz v celoti sprejet, zanka glavnega programa obdela sprejeti telegram.

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



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Avg 15, 2004 12:18 pm    Naslov sporočila:   Odgovori s citatom

Živjo

Sem že rešil problem. Tipka1 mora biti definirana na P3.2(INT0).

Pravilen izpis kode:
Koda:

Enable Interrupts
On Int0 Tipka
Enable Int0

Tipka1 Alias P3.2
Tipka2 Alias P3.0
   P3.4 = 1
   P3.5 = 1

Do

If Tipka2 = 0 Then
   P3.4 = 1
   P3.5 = 1
   P3.3 = 0
   Wait 5
   P3.3 = 1

End If

Loop
End

Tipka:
Disable Int0

If Tipka1 = 0 Then
   P3.3 = 0
   P3.4 = 0
   P3.5 = 0
End If

Enable Int0
Return

_________________
Če ne veš kam greš, se ne moreš zgubiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Avg 15, 2004 12:29 pm    Naslov sporočila:   Odgovori s citatom

Marko11,

Za izpis kode na forum lahko uporabiš gumbek "Code" Izpis je bistveno preglednejši Wink

_________________
lp
Silvo
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
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group