Stránka 1 z 3
Přerušení SERIOVEHO PORTU při přijetí dat=Enable Urxc BASCOM
Napsal: 30 črc 2010, 08:40
od michalino
Dobrý den přátelé, moc Vás prosím o pomoc.
Hraju si teď s přerušením a to pro chvíli, kdy přijdou nějaké data na seriovy port atmegy.
Před vším vysvětlením musím napsat, že když nepoužiju přerušení, normálně seriový port na ATmega16 funguje a vše je OK zapojené.
Když použiju přerušení takto:
$regfile = "m16def.dat"
$crystal = 4000000
$baud = 9600
On Urxc Serialprijimadata
Dim Prijemznaku As byte
Enable Interrupts
Enable Urxc
Do
'...program
Loop
Serialprijimadata:
Prijemznaku = Inkey()
Waitms 100
Cls
Lcd Prijemznaku
Waitms 5000
Cls
Return
Prosím o tyto rady:
1)
Když přivedu napětí do obvodu, tak pokud nemám připojen seriovy kabel k portu Atmegy, tak se program zastaví na začátku a jakoby čeká než tento kabel než ho připojím.....vůbec se nedostane do smyčky: DO...LOOP
....a jakmile připojím seriovy kabel, najednou se vše rozběhne a skočí program do do - loop a i správně reaguje na příjem dat
Jak udělat to, aby program ignoroval nepřipojený seriovy kabel (seriovou linku) k uart portum atmegy a rozjel se i bez nepřipojeného kabelu?
2)
Jak prosím mám vyřešit příjem textu, například: "Zpráva přijata" tak, abych vypsal na LCD displej celý tento text a ne jen jednotlivé znaky?
Děkuji,
michalino
Napsal: 30 črc 2010, 09:12
od procesor
Počas inicializácie po "power up" vyčistiť interup od priímača prečítaním data registra (blbé data), vysielač je prázdny a tiež požaduje obsluhu. Interup od vysielača musí byť blokovaný do času kým sa nebude vysielať.
Napsal: 30 črc 2010, 09:23
od michalino
Procesor, děkuji Vám za radu, nejsem v tom tak sběhlý, jak bych si přál.
Proč mám řešit vysílač, když chci hlídat přerušení ve chvíli, kdy se objeví nějaké data na PŘIJIMAČI serioveho portu Atmegy?
Vysílání dat z atmegy funguje normálně v podprogramu.
Nefunguje mi ale program ve chvíli, kdy nemám připojený seriovy kabel k obvodu. To mi program nenajede ani do DO-LOOP. Najede až ve chvíli, kdy připojim seriovy kabel.
Nevim, jak udelat, aby když nemam připojený seriovy kabel, aby tento stav ATMEGA ignorovala a přešla z inicializační fáze do DO-LOOP
jak to udělat v bascomu, prosím?
Děkuji moc
A PROSÍM O HELP....
Napsal: 30 črc 2010, 16:43
od michalino
Pomůže mi prosím někdo nebo jsem napsal nesrozumitelně problém?
Děkuji
Napsal: 30 črc 2010, 20:26
od procesor
Toto skús dať pred ON Urxc......
Napsal: 30 črc 2010, 20:55
od Andrea
On michalino zjevně dosud nepochopil, k čemu je takové přerušení dobré a jak se v něm chovat.
Napsal: 30 črc 2010, 21:16
od michalino
Andrea,
omlouvám se, zkouším přerušení od serialu poprvé. ALe je to pravda, nechápu to přerušení tak, abych si dokázal s hodně věcma pohrát ke své spokojenosti.
Ale když se nenastartuje program a zadrhne se už při inicializaci, opravdu nevím, co dělat.
PROCESOR - děkuji, zkouším dát příkaz na různá místa, ale nefunguje......

Napsal: 30 črc 2010, 21:30
od Andrea
Ale ono se to nezadrhne při inicializaci, ono to zůstane viset v přerušení. Proč vlastně chceš použít na příjem po sériové lince přerušení?
Napsal: 30 črc 2010, 21:38
od michalino
ANDREA,
proč to prosím přerušuje když ani nemám připojený obvod, na ktery je pripojen seriovy kabel a který zajišťuje seriovou komunikaci a tedy ani nema co přerušovat zvenčí, když seriova linka nic neprijima....? (Bude to asi ten problém, ve kterém jsem opravdu na začátku)
Potřebuju to takto přerušit, abych mohlprovádět základní program ve smyčce do loop a až ve chvíli, kdy něco přijde na seriovou linku ATmegy, tak se prováděný program přeruší na 5 sekund, kdy se ukáže na displeji, co přišlo za data na seriovou linku....
Neni to spravna cesta pouzit takove prerušení?
Děkuji
Napsal: 30 črc 2010, 21:42
od Andrea
Připadá mi to jako "Všichni kolem mají auto, tak si taky koupím auto, sice nemám řidičák a ani netuším, k čemu je takový auto dobrý, ale bud mít před barákem auto, aspoň tam bude něco překážet."
Napsal: 30 črc 2010, 21:48
od michalino
Tak to neni, je to tak:
Je to strasne krasna vec pozorovat, jak to vsechno funguje.
A navic tak rychle. Nekdy tomu procesoru pred kazdy prikaz dam waitms 100, aby si po kazdem prikazu odpocinul a v klidu nabral sily na dalsi prikaz, aby proste se tam neco nezapinkalo do jinych registru a tak.
Zamiloval jsem se do tohoto konicku. Venuju se mu uz pres rok, kdy diky vam jsem pochopil zakladni kroky. Nejsem zadny prebornik a ani byt nechci, to patri jinym opravdovym odborniku, kteri chapou ty klikyhaky, kdyz si ctou o registrech a prerusenich apod.
Bavi me to, libi se mi to a jsou kolem toho vseho lidi s krví,které rozumím. Proto to chci v klidu a v pohode delat pro radost a nespecham na to.
Takze s prirovnanim k autum jak pise andrea:
Nekdo ma auto - at ho ma, preju mu ho a pokud ho umi ovladat lepe nez ja, pak mu to taky preju. Ja chci mit taky auto, vlastni a jednou ho budu mit, přátelé...vy ale jezdíte ve ferrari, zatímco já za vámi jedu na oslovi..proto se tady ptam, proto tady pisu, protoze vim, ze jste mi vzdycky pomohli toho osla nakopnout a popohnat...
Napsal: 30 črc 2010, 21:51
od Andrea
Ale z toho, že ti bude auto překážet před domem, se nedozvíš, k čemu je dobré a jak se s ním zachází.
Napsal: 30 črc 2010, 21:56
od michalino
Pokud ho dam pred dum, tak ano, ale to bych si zase u sousedu udelal ostudu, pokud bych ho nerozjel.
Taky si ho muzu nechat v garazi a chodit ho kazdy vikend umyvat a leštit, jak to delavali dědové se staryma a tehdy proslulýma MBéčkama.
Mnozí co mají embéčka ještě dnes, taky se chodí kochat na jejich slávu do garáže a málokdo je takový borec, že by ho vytáhl na ty dnešní rychloproudovky...
Nechci se o tomto přít. Uznávám Vaši pravdu, že tomu nerozumím, ale nechci se těch pocitů v garáži vzdát...
Napsal: 30 črc 2010, 22:02
od Andrea
Troufnu si tvrdit, že ti dědové věděli(vědí), k čemu je to MBčko dobré i když ho k tomu účelu z rozličných důvodů nepoužívají. Ale ty máš to auto a přitom netušíš, k čemu se používá, místo abys v něm jezdil, tak ho před sebou tlačíš.
Napsal: 30 črc 2010, 22:04
od michalino
Je to pro mne nedobré, ale ano, jako s tím oslem.
Prosím o pomoc, přeju si ho tlačit dál