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 

Programiranje v bascom avr
Pojdi na stran Prejšnja  1, 2, 3 ... 31, 32, 33 ... 36, 37, 38  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Nov 22, 2014 2:07 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5327
Aktiv.: 24.78
Kraj: Domzale

PrispevekObjavljeno: Sob Nov 22, 2014 2:48 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Dec 05, 2014 12:55 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Dec 05, 2014 12:56 pm    Naslov sporočila:  Atxmega Odgovori s citatom

Prosim, kako moram narediti, da je koda v belem okvirju?

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
MadMax
Član
Član



Pridružen-a: Pet 09 Sep 2005 22:16
Prispevkov: 4743
Aktiv.: 21.36

PrispevekObjavljeno: Pet Dec 05, 2014 1:54 pm    Naslov sporočila:   Odgovori s citatom

Koda:
Prosim, kako moram narediti, da je koda v belem okvirju?

Tole?
"Code".
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Dec 05, 2014 5:55 pm    Naslov sporočila:   Odgovori s citatom

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. Think

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kose19
Član
Član



Pridružen-a: Sre 02 Mar 2005 19:37
Prispevkov: 1228
Aktiv.: 5.53
Kraj: okolica Kobarida

PrispevekObjavljeno: Pet Dec 05, 2014 6:12 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Sob Dec 06, 2014 10:11 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 561
Aktiv.: 2.53
Kraj: Ljubljana

PrispevekObjavljeno: Sob Dec 06, 2014 12:32 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5327
Aktiv.: 24.78
Kraj: Domzale

PrispevekObjavljeno: Sob Dec 06, 2014 9:54 pm    Naslov sporočila:   Odgovori s citatom

Kontaktiraj Protončka - mislim, da je on svoj ta hud napajalnik naredil na Xmega128.

LP, g

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Sob Dec 06, 2014 10:05 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Ned Dec 07, 2014 12:00 pm    Naslov sporočila:   Odgovori s citatom

Za pomoč pri spoznavanju z Xmego. Klik

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Ned Dec 07, 2014 1:55 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Ned Dec 07, 2014 2:15 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1138
Aktiv.: 5.12
Kraj: Škofja Loka

PrispevekObjavljeno: Ned Dec 07, 2014 2:40 pm    Naslov sporočila:   Odgovori s citatom

Protoncek, sem vstavil manjkajočo konfiguracijo in DELAAAA.
Hvala, pivo pa vejca.

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 31, 32, 33 ... 36, 37, 38  Naslednja
Stran 32 od 38

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


Powered by phpBB © 2001, 2005 phpBB Group