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 ... 6, 7, 8 ... 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
program_er
Član
Član



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

PrispevekObjavljeno: Sob Maj 17, 2008 3:19 pm    Naslov sporočila:   Odgovori s citatom

Malo sem spremenil kodo:
Koda:

$regfile = "m16def.dat"
$crystal = 1000000

Enable Adc

Config Portd.6 = Output

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db7 = Portd.0 , Db6 = Portd.1 , Db5 = Portd.2 , Db4 = Portd.3 , E = Portd.4 , Rs = Portd.5
Cursor Off
Osvetlitev Alias Portd.6
Osvetlitev = 1

Config Adc = Single , Prescaler = Auto , Reference = Off

Start Adc

Dim W As Word , Rz As Word , Kp As Word , Rezultat As Single , Channel As Byte

Channel = 0

'now read A/D value from channel 0
'Aha, se pravi da je pri 10-bitnem ADC-ju račun takšen:
'&H80 = W <--neka cifra (če mi to vrže v programu)
'W x referenčna napetost = Rz
'Rz x 1000 (ne 10) = Kp
'Kp : 1024 = Mv
Do

 W = Getadc(channel)
 Rz = W * 5.05
 Kp = Rz * 1000
 Rezultat = Kp / 1024

 Gosub Prikaz
 Incr Channel
 If Channel > 3 Then Channel = 0

Loop

Prikaz:
Cls
Home U
Lcd "ADC:" ; Channel ; " = " ; Rezultat
Wait 1
Return

End



'The new M163 has options for the reference voltage

'For this chip you can use the additional param :

'Config Adc = Single , Prescaler = Auto, Reference = Internal

'The reference param may be :

'OFF      : AREF, internal reference turned off

'AVCC     : AVCC, with external capacitor at AREF pin

'INTERNAL : Internal 2.56 voltage reference with external capacitor ar AREF pin



'Using the additional param on chip that do not have the internal reference will have no effect.


Pin AREF sem povezal z + 5V
Zdaj pa mi kaže kup decimalk.

Pa ista pesem. Če imam upore mi kaže vedno isto, 3.xxxxxxxx (ne vem točno) če pa so pini nepovezani, pa mi kaže različno

_________________
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
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 706
Aktiv.: 3.18
Kraj: Severna primorska

PrispevekObjavljeno: Sob Maj 17, 2008 6:33 pm    Naslov sporočila:   Odgovori s citatom

Če si upore vezal vsakega iz +5V pa na en pin ADC-ja nisi naredil prav nič! Napetost na vseh pinih je 5V.
Vzemi en potenciometer, zunanja pola veži na +5V in maso, srednji odcep pa na enega od vhodov adc-ja!
Tako boš videl spreminjanje vrednosti, ko boš vrtel potenciometer od 0 do maksimalne(zato ker bo napetost na pinu od 0 do 5V)!
Pini, ki so "v zraku" vedno kažejo neko vrednost, ki se spreminja.
Kanale, ki jih ne potrebuješ vežeš na maso in je.


Lp
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 Maj 17, 2008 9:01 pm    Naslov sporočila:  Re: Poizkusi tako, kot piše v help-u Odgovori s citatom

Hvala vam, deluje!

vilko je napisal/a:
...
In če hočeš napisati rezultat kot 5.0V potem moraš še ločiti desetinke od celih voltov v dve ločeni spremenljivki

Koda:
dim volti as word
dim desetinke as word

volti = W2 / 10
desetinke = W2 mod 10
print "Napetost je ";volti;".";desetinke;"V  "


Najbolje je, da probaš.


Tudi to odlično deluje, od 0.0 do 5.0 V.

Tu pa je moj kos računske kode:
Koda:

Config Adc = Single , Prescaler = Auto , Reference = Internal


Start Adc

Dim W As Word , Rz As Word , Kp As Word , Rezultat As Word , Channel As Byte , Volti As Word , Desetinke As Word

Channel = 0

Do

 W = Getadc(0)
 Rz = W * 5.45
 Kp = Rz * 10
 Rezultat = Kp / 1023

 Volti = Rezultat / 10
 Desetinke = Rezultat Mod 10

 Gosub Prikaz

 Loop

Prikaz:
 Cls
 Home U
  Lcd "ADC = " ; Volti ; "." ; Desetinke ; " V"
 Lowerline
  Lcd "ADC izvir:" ; W
 Waitms 500
Return

End


@Vilko, a lahko prosim pogledaš moj primer in mi poveš, kako bi naredil prikaz z dvema decimalkama, torej od 0.00 do 5.00 V.

Hvala!

_________________
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
program_er
Član
Član



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

PrispevekObjavljeno: Sob Maj 17, 2008 9:10 pm    Naslov sporočila:   Odgovori s citatom

Ah, sem že "pogruntal". Dela mi odlično!

Imam pa en problem. Referenčne napetosti nimam vedno točno take, kot imam v programu napisano.

Ali obstaja kakšna nastavitev, da bi mi program avtomatsko množil moj račun - ne z 5.45 zgoraj - ampak z napetostjo, ki bi jo pripeljal na AREF pin, se pravi + okoli 5V. Tako bi imel vedno točen rezultat.

_________________
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
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.09
Kraj: Dragomer

PrispevekObjavljeno: Sob Maj 17, 2008 9:13 pm    Naslov sporočila:  no Odgovori s citatom

No, analogno.

Če si desetinke dobil kot
Koda:
dim volti as word
dim desetinke as word

volti = W2 / 10
desetinke = W2 mod 10
print "Napetost je ";volti;".";desetinke;"V  "
potem boš vrednostnos s stotinkami dobil kot

Koda:
dim volti as word
dim stotinke as word

volti = W2 / 100
stotinke  = W2 mod 100
print "Napetost je ";volti;".";stotinke;"V  "

_________________
Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati.
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: Ned Maj 18, 2008 10:38 am    Naslov sporočila:   Odgovori s citatom

Hvala vam! Vse mi dela. Nebi si mislil, da je to taka lahka stvar. Zdaj ko sem pogruntal mi je to nekaj najlažjega! Cool

Sem že naredil sledibota, sem dal fotoupor med ADC in +, pa še 10k upor med ta isti ADC in minus. Namesto motorjev pa sem dal ledice. Very Happy
Moja koda:
Koda:

Do

 W = Getadc(0)
 Rz = W * 5.45
 Kp = Rz * 10
 Rezultat = Kp / 1023
' Rezultat = Rezultat * 10

 Volti = Rezultat / 10                                      ' Rezultat / 100
 Desetinke = Rezultat Mod 10                                'Mod 100

 If W > 600 Then Portc.7 = 0
 If W < 600 Then Portc.7 = 1

 Gosub Prikaz

 If W > 600 Then Portc.7 = 0
 If W < 600 Then Portc.7 = 1

Loop

Prikaz:
 Home U
  Lcd "ADC = " ; Volti ; "." ; Desetinke ; " V"
 Lowerline
  Lcd "ADC izvir:" ; W
 Waitms 300
Return

End

Kot se vidi, imam If ukaze pred in po rutini Gosub Prikaz. Zakaj? Ko sem imel to samo pred tem ukazom, je bil odzivni čas uC-ja 300ms, ker subrutina Prikaz traja 300ms. To me je motilo. Zato pa imam vprašanje, če obstaja kaka zanka ali ukaz, ki bi vedno ponavljal ta ukaz, ampak med tem bi jaz v glavnem programu delal nekaj drugega. Z Do-Loop ne gre, ker je lahko v programu samo ena taka zanka. Ker ne morem jaz za vsakim Wait ukazom spet napisati ta dva ukaza ponovno. Ja, pa pomembno je, da bi se ta zanka izvajala med Wait ukazi!


Ne razumem pa, zakaj moj uC nikoli ni hotel poganjati servotov. Vse sem pravilno zvezal, kot piše v helpu, pa ne gre. Mogoče pa servo ne podpira krmiljenja preko uC? Uporabljam Standard HITEC HS-311 servo.

Hvala za odgovore!

_________________
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
poule
Član
Član



Pridružen-a: Čet 11 Jan 2007 19:53
Prispevkov: 800
Aktiv.: 3.82
Kraj: Ljubljana

PrispevekObjavljeno: Ned Maj 18, 2008 9:02 pm    Naslov sporočila:   Odgovori s citatom

pozdravljeni,...končno sem se tudi jaz lotil s programiranjem,.....in prva težava.

uporabljam minipin in attiny2313.

ko hočem naložiti program mi javi napako:


ko jo potrdim mi javi še tole:


čip imam definiran takole:


programiram preko sample programatorja (LPT)


čip imam definiran tudi na začetku programa ($regfile = "ATTiny2313.dat")


Nekje sem najbrž nekaj spregledal v nastavitvah,da se mi ne poveže. Hvala za vsak nasvet.
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2104
Aktiv.: 10.13
Kraj: Krško

PrispevekObjavljeno: Ned Maj 18, 2008 10:20 pm    Naslov sporočila:   Odgovori s citatom

To ti javlja,da nimaš pravilno povezan uC ter programator. Preveri še enkrat povezave,nastavitve imaš pravilno izbrane. Tako da je verjetno napaka na programatorju. Preveri če si pravilno poveza tiste signale miso,mosi,sck.....ter če si pravilno naredil programator.
_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
poule
Član
Član



Pridružen-a: Čet 11 Jan 2007 19:53
Prispevkov: 800
Aktiv.: 3.82
Kraj: Ljubljana

PrispevekObjavljeno: Ned Maj 18, 2008 10:37 pm    Naslov sporočila:   Odgovori s citatom

povezano imam (preverjeno) takole:


mi pa isto napako izpiše, če imam programator iztaknjen iz računalnika. Kako lahko preverim, če LPT sploh deluje?
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2104
Aktiv.: 10.13
Kraj: Krško

PrispevekObjavljeno: Ned Maj 18, 2008 10:43 pm    Naslov sporočila:   Odgovori s citatom

Poglej rajši v Help bascoma,tam imaš lepo razloženo o tem sample programatorju,pa še za LPT konektor imaš lepo napisane številke Pina.
_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jurem
Član
Član



Pridružen-a: Tor 02 Dec 2003 15:53
Prispevkov: 408
Aktiv.: 1.84
Kraj: Ljubljana

PrispevekObjavljeno: Ned Maj 18, 2008 10:57 pm    Naslov sporočila:   Odgovori s citatom

V BIOS-u poglej vse možne LPT naslove in jih enega za drugim preizkusi v nastavitvah za Sample programmer.

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



Pridružen-a: Čet 11 Jan 2007 19:53
Prispevkov: 800
Aktiv.: 3.82
Kraj: Ljubljana

PrispevekObjavljeno: Ned Maj 18, 2008 10:59 pm    Naslov sporočila:   Odgovori s citatom

v help-u je napisano takole,

, v dokumentaciji za razvojno plato pa imam napisano:

konektor K6:
RST pin3
MOSI pin 8
MISO pin9
SCKpin10
GND pin2

Kako je pravilno?
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jurem
Član
Član



Pridružen-a: Tor 02 Dec 2003 15:53
Prispevkov: 408
Aktiv.: 1.84
Kraj: Ljubljana

PrispevekObjavljeno: Ned Maj 18, 2008 11:21 pm    Naslov sporočila:   Odgovori s citatom

poule je napisal/a:
v dokumentaciji za razvojno plato pa imam napisano:

konektor K6:
RST pin3
MOSI pin 8
MISO pin9
SCKpin10
GND pin2

Kako je pravilno?


K6 je IDC konektor, ne LPT.

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



Pridružen-a: Čet 11 Jan 2007 19:53
Prispevkov: 800
Aktiv.: 3.82
Kraj: Ljubljana

PrispevekObjavljeno: Pon Maj 19, 2008 6:33 am    Naslov sporočila:   Odgovori s citatom

Itak da je IDC, saj je vidno iz slike, par prispevkov višje. Na eni strani flat kabla je 10 pin IDC, na drugi 25pin D-sub (LPT).
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
poule
Član
Član



Pridružen-a: Čet 11 Jan 2007 19:53
Prispevkov: 800
Aktiv.: 3.82
Kraj: Ljubljana

PrispevekObjavljeno: Pon Maj 19, 2008 6:52 pm    Naslov sporočila:   Odgovori s citatom

a moram kaj nastaviti tudi tukaj, oz. kako lahko s tem potipam, če je živ?


Nazaj na vrh
Prisoten 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 ... 6, 7, 8 ... 36, 37, 38  Naslednja
Stran 7 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