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 

Definicija Interrupt vektorja v Bascom-8051

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
s56wie
Profesionalec


Pridružen/-a: Ned Apr 2004 0:17
Prispevkov: 54

PrispevekObjavljeno: Sre Dec 29, 2010 2:00 pm    Naslov sporočila: Definicija Interrupt vektorja v Bascom-8051 Odgovori s citatom

V Bascom-8051 koda:

On Serial Serrut

ustvari ASM kodo:
ORG 23h
LJMP Serrut

Mikrokontroler DS89C450 ima tudi drugi UART.
Interrupt se sproži na naslovu 3Bh. Ker Bascom-8051 te prekinitve ne podpira, bi jo moral definirati sam.

Torej bi v Bascom-8051 moral vpisati ASM kodo:
ORG 3Bh
LJMP Serrut2

Da bi se v primeru prekinitve izvedel podprogram Serrut2.

Toda BASCOM-8051 ASM ORG ne spusti.

Prosim za pomoč, kako to storiti.

Za zgled bi bilo zelo primerno, da bi v BASCOM-8051 namesto
On Serial Serrut - uporabil ASM kodo.

Hvala!

Gregor
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Yahoo Messenger - naslov
vilko
Profesionalec


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

PrispevekObjavljeno: Ned Jan 02, 2011 6:50 pm    Naslov sporočila: Odgovori s citatom

Assembler koda, ki jo vlkjučiš v Bascom prevajalnik program, lahko vsebuje le omejeno število assemblerskih vragolij, ki si jih sicer privoščiš v Assembler prevajalniku.
ORG pravzaprav ni izvršilna instrukcija, temveč navodilo prevajalniku, da kar bo sledilo spada na v ORG navodilu omenjeni naslov.
Izvršilne assemblerske instrukcije pa lahko vključiš v Bascom program. To je pred vsem namenjeno, kot dopolnilo bascomovim izvršilnim instrukcijam.

Predpostavljam, da ti bi rad v teku programa spreminjal naslov prekinitvenega podprograma, enkrat podprogram A, drugič podprogram B.

Priporočam, da namesto le tega definiraš zastavico (bit ali byte spremenljivko) in jo po potrebi nastavljaš v glavnem programu, v prekinitvenem podprogamu pa z SELECT CASE izbereš tisti del podprograma, ki naj naredi potrebno.

_________________
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
s56wie
Profesionalec


Pridružen/-a: Ned Apr 2004 0:17
Prispevkov: 54

PrispevekObjavljeno: Tor Jan 04, 2011 6:02 pm    Naslov sporočila: Odgovori s citatom

Vilko hvala za odgovor, ampak to ni to.

Kontroler DS89C450 ima dva UART-a.

Prekinitveni podporgram za prvi UART ni problematičem, saj lahko z kodo: On Serial Serrut ukažem bascomu, kateri del kode se naj izvede,
ko se zgodi interrupt. Torej bo ob prekinitvi skočil na Serrut.

Moja težava je v tem, da nevem kako naj bascomu ukažem, kateri del kode naj se izvede, ko se zgodi interrupt za drugi UART. Ob tej prekinitvi se bi moral izvesti drugi podprogram.

Za interrupte, ki jih bascom direktno podpira je stvar zelo enostavna:

On Int1 Prekinitev1
On Int0 Prekinitev0
On Serial Serrut

Potreboval bi On Serial2 Serrut2. Tega drugega porta za ta mikrokontroler, pa bascom ne podpira, zato me zanima, kako bi kljub temu ta port vključno z interrupt vektorjem uporabil v bascomu!
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Yahoo Messenger - naslov
vilko
Profesionalec


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

PrispevekObjavljeno: Tor Jan 04, 2011 7:21 pm    Naslov sporočila: Odgovori s citatom

Ajaj, na to še nisem naletel.

Izgleda, da tudi moj bascom8051 pozna samo en uart, je pa res, da ga že doglo nisem pomladil.
Uart2 uporabljam na Bascomavr že nekaj časa brez problema.

morda bi veljalo vprašanje postaviti na MCS forum
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59

_________________
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 -> Programska oprema Časovni pas GMT + 1 ura, srednjeevropski - zimski č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
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group