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 ... 13, 14, 15 ... 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
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.09
Kraj: KOPER

PrispevekObjavljeno: Pon Dec 29, 2008 10:38 am    Naslov sporočila:   Odgovori s citatom

Literatura omenjena v gornjem postu je - Bascom AVR začetni tečaj -.

Poišči ga na našem forumu.

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
TECHNIC
Član
Član



Pridružen-a: Tor 31 Okt 2006 11:18
Prispevkov: 582
Aktiv.: 2.75
Kraj: Senovo

PrispevekObjavljeno: Tor Dec 30, 2008 12:45 pm    Naslov sporočila:   Odgovori s citatom

Kako bi izvedel tole, da bi delovalo:

Koda:

Dim Number As Word
Number = 1000

...
Waitus Number
...



Rad bi, da program počaka za vrednost Number mikro sekund.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1712
Aktiv.: 7.71
Kraj: Ig

PrispevekObjavljeno: Tor Dec 30, 2008 1:47 pm    Naslov sporočila:   Odgovori s citatom

Prvič...zakaj kompliciraš?
Drugič Waitus deluje samo do 255 se pravi 255us. Če hočeš čakati v mikrosekundah
moraš čakati 4xpo250us.

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
TECHNIC
Član
Član



Pridružen-a: Tor 31 Okt 2006 11:18
Prispevkov: 582
Aktiv.: 2.75
Kraj: Senovo

PrispevekObjavljeno: Tor Dec 30, 2008 1:53 pm    Naslov sporočila:   Odgovori s citatom

Že rešil drugače.
Vem, da je 255 največ, ampak z waitus 1000 prav tako deluje (počaka 1 ms).

Program je uporabljen v krmiljenju servo-motorja.
Koda:
Servo = 1
Waitus Count
Servo = 0
Waitms 20

Pri čemer se prvi pulz spreminja po dolžini.

Kasneje sem rešil z zanko for-next ter ukazom pulseout. (po primeru na internetu)

Koda:
$crystal = 4000000

Ddrb.0 = 1
Dim A As Word

Do

For A = 2000 To 1000 Step -10
Pulseout Portb , 0 , A
Waitms 20
Next

For A = 1000 To 2000 Step 10
Pulseout Portb , 0 , A
Waitms 20
Next

Loop


Eno vprašanje. Kje program razume, da mora počakati za A mikrosekund ?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.09
Kraj: KOPER

PrispevekObjavljeno: Tor Dec 30, 2008 3:43 pm    Naslov sporočila:   Odgovori s citatom

To se naredi z timerji v interuptu. Skonfiguriraš timer na 1ms. V interrupt rutini odštevaš nastavljeni čas do nule . Ko pride dotični števec na vrednost 0 postaviš zastavico. V glavni zanki gledaš kdaj je ta zastavica postavljena, jo pobrišeš nato pa narediš kar hočeš oz. rabiš. Na tak način lahko glavni program dela še ostala opravila, ne pa da čaka iztek časa v zanki.

Koda:


do
   prikaži LCD itd
   
   if pogoj_npr_tipka = pritisnjena  then nastavljen čas = željen čas

   if zastavica= 1 then
     reset zastavica
     izvrši kar hočeš
   endif
loop

timer0_isr:

if nastavljeni čas>0 then
   decr nastavljeni čas
   if nastavljen_čas=0 then set zastavica
endif

return



Tu je samo nakazano kako, se to lahko naredi !

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.12
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Tor Dec 30, 2008 7:58 pm    Naslov sporočila:   Odgovori s citatom

RGorazd je napisal/a:
Drugič Waitus deluje samo do 255 se pravi 255us. Če hočeš čakati v mikrosekundah
moraš čakati 4xpo250us.

LP G


Ni več tako! Dajte si že enkrat zapomnit, da BASCOM-AVR sam razčleni Wait na 255. Sam sem všasih pisal Waitms 1362 in je delovalo točno.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.67
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 31, 2008 10:56 am    Naslov sporočila:   Odgovori s citatom

Wait deluje tudi v decimalnem številu npr: Wait 1.5
_________________
Razsvetljujemo od leta 1920!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Sob Feb 07, 2009 1:38 pm    Naslov sporočila:   Odgovori s citatom

Lp!

Imam en projekt z Atmega32, kjer je poleg druge periferije ki ni bistvena, vezana tipka pa portd.1. Tipka se namreč ne odziva. Če pomerim enosmerno napetost proti masi je ta okrog 0.11 in pade na maso ko pritisnem tipko. Tipko berem pravilno v bascomu, ker imam vse druge skonfigurirane na isti način in dela use lepo in prav. Sem mislil da je težava v tem ker je na tem pinu Txd, pa sem izrecno izklopil serijski vmesnik v bascomu (disable serial), premeril sem tudi vse povezave, da ni slučajno kje kakšen slab stik ampak še kar isti rezultat. Se komu sanja kaj sem spregledal?

EDIT: Popravil sem napako, mislil sem portd.1 ne portd.2!

_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
klemen88
Član
Član



Pridružen-a: Tor 01 Jan 2008 17:37
Prispevkov: 747
Aktiv.: 3.78
Kraj: Slovenj Gradec

PrispevekObjavljeno: Sob Feb 07, 2009 1:55 pm    Naslov sporočila:   Odgovori s citatom

Lp.
Mislim da Rx ter Tx nimata notranjega pullup upora. Dodaj 4.7k Omega upor na Ucc.

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



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

PrispevekObjavljeno: Sob Feb 07, 2009 2:03 pm    Naslov sporočila:   Odgovori s citatom

Po vrsti,
ukaza WAIT in WAITMS so lahko tipa word in so lahko spremenljivka!
Ukaz WAITUS je tudi lahko tipa word vendar v heplu lepo piše (preizkušeno):
Citiram:
The number of microseconds to wait. (1-65535)

This must be a constant. Not a variable!

to pomeni da ne moremo napisati Waitus A !

Tozir, to da si napisal Disable serial, ne pomeni da si izklopil serijsko komunikacijo, s tem izklopiš samo serial interrupts. V primeru da imaš definiran $baud, Bascom postavi Rx in Tx pine za komunikacijo, poglej malo v datashet in kako naj spremeniš register, za 8515 sem uporabljal set/reset UCR.3.
Vlado
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Sob Feb 07, 2009 2:14 pm    Naslov sporočila:   Odgovori s citatom

klpzm je napisal/a:
Lp.
Mislim da Rx ter Tx nimata notranjega pullup upora. Dodaj 4.7k Omega upor na Ucc.

Lp


Ga že imam, vendar je vrednost 10k Omega . Prevelik?

_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.12
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sob Feb 07, 2009 2:20 pm    Naslov sporočila:   Odgovori s citatom

tozir je napisal/a:
klpzm je napisal/a:
Lp.
Mislim da Rx ter Tx nimata notranjega pullup upora. Dodaj 4.7k Omega upor na Ucc.

Lp


Ga že imam, vendar je vrednost 10k Omega . Prevelik?


Načeloma ne, kajti potreben je samo zato, da bo pin potegnil na 1. Poiskusi, pa povej, če dela!

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
klemen88
Član
Član



Pridružen-a: Tor 01 Jan 2008 17:37
Prispevkov: 747
Aktiv.: 3.78
Kraj: Slovenj Gradec

PrispevekObjavljeno: Sob Feb 07, 2009 2:24 pm    Naslov sporočila:   Odgovori s citatom

Poizkusi z manjšim, pa če lahko pripni program, ki ga pišeš. Bereš tipko z PIN potem? Imaš definirano kot vhod? itd. Nevem kako ti delaš vendar jaz notranje pullup upore aktiviram oz. postavim z PORTB=&b0000_0000 če je 1 je pullup vključen, če je 0 je izključen in je izhod.
Kot vhod ali izhod pa postavlam z DDRX=&B1000_0000 - 1 je izhod, 0 pa vhod.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Sob Feb 07, 2009 2:28 pm    Naslov sporočila:   Odgovori s citatom

Hmm še kar isto. Mora biti nekaj z tipko narobe. Tistih 0.2V pomeni, da mora biti nekje kakšen stik ali pa je tipka pokvarjena. Bom kar celotno vezje razdrl pa debugu vse, pa bomo vidli.
_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Sob Feb 07, 2009 2:45 pm    Naslov sporočila:   Odgovori s citatom

Zanimivo. Nekje v vezju mora biti napaka. Tipka sama kot sama je v redu. Ko jo vključim v vezje pa pri odprti tipki zmerim 170Ohmov upornosti proti masi. Zaradi te upornosti mi potem kaže 0.2V pri "odprti" tipki. Nič kaj drugega kot napetostni delilnik. Hvala za pomoč! Se bom še javil če bom imel programsko napako Wink
_________________
http://www.rielektronika.comule.com/
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 -> Bascom sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 13, 14, 15 ... 36, 37, 38  Naslednja
Stran 14 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: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group