|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Sob Nov 22, 2014 2:07 pm Naslov sporočila: |
|
|
Hvala zdaj mi deluje samo incr A sem nadomestil z A = A + 1
Imam pa problem z tipkami ( imam občutek da se program nekje ustavi in ne gre naprej, ker mi drugega potem ne dela ampak samo vhode, pa sem samo to dodal k ostalimi 3 vhodi ) pa me zanima če je to prav napisano:
Koda: |
If Tipka3 = 0 Then
Wait 1
If Tipka3 = 0 Then
Cls
Cursor Off
Locate 2 , 2
Lcd "tipka3 pritisnjena"
Wait 2
Cls
End If
End If |
dodano: se opravičujem za dvojni post ampak mi je kazalo napako pri pošiljanju... |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5327 Aktiv.: 24.78 Kraj: Domzale
|
Objavljeno: Sob Nov 22, 2014 2:48 pm Naslov sporočila: |
|
|
Poskusi se znebit telih Wait ukazov ... To ti je smrt za vsak program, saj takrat procesor ne počne prav nič drugega kot čaka (ok, pustimo interrupte na tem nivoju ) ... Tale "ustavitev" programa se dogaja najverjetneje prav zaradi vsega tega čakanja.
Tudi Cls ukaza se ne poslužuj pogosto, saj takrat display "utripne", kar ni lepo. Raje prepisuj vsebino displaya s kombinacijo ukaza "Locate" (da poveš pozicijo) in "Lcd" (izpis). Sam ju navadno dam kar v isto vrstico, npr.
Locate 1 , 1 : Lcd "test"
Lp, g _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Pet Dec 05, 2014 12:55 pm Naslov sporočila: |
|
|
Pozdravljeni
Na mizo sem dal ATXMEGA 128A3U, jo počasi spoznavam. Na serijskem vhodu hočem sprejeti en byte v prekinitvenem načinu, vendar ga ne sprejme.
Ideja: ko sprejme byte, zasveti ledica.
Priloga programa, prosim za pomoč.
LP
Koda: |
$regfile = "xm128a3def.dat"
$crystal = 16000000
$hwstack = 64
$swstack = 64
$framesize = 64
$lib "xmega.lib"
$external _xmegafix_clear
$external _xmegafix_rol_r1014
Config Osc = Disabled , Extosc = Enabled , Range = 12mhz_16mhz , Startup = Xtal_256clk ', 32khzosc = Enabled
Config Sysclock = External , Prescalea = 1 , Prescalebc = 1_1
Config Com2 = 38400 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
Open "Com2:" For Binary As #2
Dim Spr As Byte
Dim Rxc1_b As Bit
Config Portf = Output
Led Alias Portf.0
Led1 Alias Portf.2
On Usartc1_rxc Rxc_isr
Enable Usartc1_rxc , Lo
Enable Interrupts
'///////////////////////////////////////////////////////////////////////////////
Do
If Rxc1_b = 1 Then
Print #2 , "Sprejeto=" ; Spr
Reset Rxc1_b
End If
Waitms 200
Reset Led1
Loop
'//////////////////////////////////////////////////////////////////////////////
End
'//////////////////////////////////////////////////////////////////////////////
Rxc_isr:
Spr = Inkey(#2)
Set Rxc1_b
Set Led1
Return
'///////////////////////////////////////////////////////////////////////////// |
Nazadnje urejal/a tiger Pet Dec 05, 2014 5:40 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Pet Dec 05, 2014 12:56 pm Naslov sporočila: Atxmega |
|
|
Prosim, kako moram narediti, da je koda v belem okvirju?
LP |
|
Nazaj na vrh |
|
|
MadMax Član
Pridružen-a: Pet 09 Sep 2005 22:16 Prispevkov: 4743 Aktiv.: 21.36
|
Objavljeno: Pet Dec 05, 2014 1:54 pm Naslov sporočila: |
|
|
Koda: |
Prosim, kako moram narediti, da je koda v belem okvirju? |
Tole?
"Code". |
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Pet Dec 05, 2014 5:55 pm Naslov sporočila: |
|
|
Hvala Mad Max.
Isti program (nastavitve procesorja so drugačne), ki je napisan zgoraj deluje na Atmegi 16, na ATXMEGI128 pa ne, ne vem v čem je haklc.
LP |
|
Nazaj na vrh |
|
|
kose19 Član
Pridružen-a: Sre 02 Mar 2005 19:37 Prispevkov: 1228 Aktiv.: 5.53 Kraj: okolica Kobarida
|
Objavljeno: Pet Dec 05, 2014 6:12 pm Naslov sporočila: |
|
|
Jaz imam v prekinitveni rutini tako.
Koda: |
A = Inkey()
'Lcd Hex(a)
'Cls
If A = 2 Then
...
End If
|
Sem pa z lcd hex(a) si veliko pomagal, da sem videl kaj mi bere v buffer.
Mi pa to dela na Atmega8. _________________ - Absens, carens -
- Tisti, ki ga ni, bo prikrajšan - |
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Sob Dec 06, 2014 10:11 am Naslov sporočila: |
|
|
Prekinitvena rutina naj bi imela čim manj kode, samo potrebno, da se obdela rutina.
Vsi izpisi in podobno naj se vršijo v glavnem programu ali podprogramu. Dokler se prekinitvena rutina ne zaključi, ne more sprejeti nove prekinitve.
V tem primeru ne more sprejeti novega podatka iz serijskih vrat.
Ali res nihče ne programira ATXMEG v Bascomu? Ne uspe mi sprogramirati serijskega vhoda v prekinitvenem načinu. Primer nekaj postov nazaj.
LP |
|
Nazaj na vrh |
|
|
Vlado Član
Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 561 Aktiv.: 2.53 Kraj: Ljubljana
|
Objavljeno: Sob Dec 06, 2014 12:32 pm Naslov sporočila: |
|
|
Z XMego nisem še delal ker ni bilo potrebe, sem pa malo bral na Nemškem forumu.
Če ti nemščina ni toliko tuja poglej ta link:
http://bascom-forum.de/showthread.php?2198-ATXMEGA-kleines-einmaleins-Erste-Schritte-mit-ATxmega
med drugim sem zasledil tole:
Citiram: |
For the other UARTS, the variables are named similar. But they do have a
different number.
A 1 for the second UART, a 3 for the third UART and a 4 for the fourth
UART. Yes, the '2' is skipped. |
LP |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5327 Aktiv.: 24.78 Kraj: Domzale
|
Objavljeno: Sob Dec 06, 2014 9:54 pm Naslov sporočila: |
|
|
Kontaktiraj Protončka - mislim, da je on svoj ta hud napajalnik naredil na Xmega128.
LP, g _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.83 Kraj: Mengeš
|
Objavljeno: Sob Dec 06, 2014 10:05 pm Naslov sporočila: |
|
|
No, moj "tahud" napajalnik je sicer res z xmego, a ne uporabljam serijske komunikacije, oziroma sem jo uporabljal samo enosmerno - iz xmege na terminal za potrebe debug-a.
Bom jutri naložil gornji program in se malce poigral, če kaj ugotovim, pa sporočim. Sicer imam doma samo xmega128a1u, ampak po moje ni neke hude razlike. |
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Ned Dec 07, 2014 12:00 pm Naslov sporočila: |
|
|
Za pomoč pri spoznavanju z Xmego. Klik
LP |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Ned Dec 07, 2014 1:55 pm Naslov sporočila: |
|
|
Zdravo
Kako se naredi, da mi program normalno teče, na vsake npr. 10 minut pa bi izvedel neko akcijo?
L.p. |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.83 Kraj: Mengeš
|
Objavljeno: Ned Dec 07, 2014 2:15 pm Naslov sporočila: |
|
|
Tiger:
Evo, meni je zadeva stekla, ko sem vstavil naslednji stavek:
Koda: |
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled |
Sicer sem com port spremenil v COM1, ker imam tako na demo plati, ampak bi moralo delati tudi na ostalih portih. Preveri in javi.
Mato:
narediš timer in tam šteješ. Recimo timer s prekinitvijo na 1 sekundo. Potem šteješ sekunde, minute. po 10 minutah pa pač tisto narediš.
primer za kvarc 8MHz in timer1:
Koda: |
const Timer1Reload = 7812
config timer1=timer,prescale = 1024
load timer1 , Timer1Reload
on ovf1 Timer1_isr
enable timer1
start timer1
enable interrupts
'TUKAJ IMAŠ TVOJ PROGRAM, zraven dodaj:
if sekunde=60 then
sekunde=0
incr minute
endif
if minute=10 then
minute=0
'narediš tisto na 10 minut
end if
'--------------------------------------
Timer1_ISR:
load timer1, Timer1Reload
incr sekunde
return
|
|
|
Nazaj na vrh |
|
|
tiger Član
Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1138 Aktiv.: 5.12 Kraj: Škofja Loka
|
Objavljeno: Ned Dec 07, 2014 2:40 pm Naslov sporočila: |
|
|
Protoncek, sem vstavil manjkajočo konfiguracijo in DELAAAA.
Hvala, pivo pa vejca.
LP |
|
Nazaj na vrh |
|
|
|
|
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: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|