|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.12 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Maj 17, 2008 3:19 pm Naslov sporočila: |
|
|
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 |
|
|
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.18 Kraj: Severna primorska
|
Objavljeno: Sob Maj 17, 2008 6:33 pm Naslov sporočila: |
|
|
Č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 |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.12 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Maj 17, 2008 9:01 pm Naslov sporočila: Re: Poizkusi tako, kot piše v help-u |
|
|
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 |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.12 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Maj 17, 2008 9:10 pm Naslov sporočila: |
|
|
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 |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Sob Maj 17, 2008 9:13 pm Naslov sporočila: no |
|
|
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 |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.12 Kraj: Maribor (Pohorje)
|
Objavljeno: Ned Maj 18, 2008 10:38 am Naslov sporočila: |
|
|
Hvala vam! Vse mi dela. Nebi si mislil, da je to taka lahka stvar. Zdaj ko sem pogruntal mi je to nekaj najlažjega!
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.
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 |
|
|
poule Član
Pridružen-a: Čet 11 Jan 2007 19:53 Prispevkov: 800 Aktiv.: 3.82 Kraj: Ljubljana
|
Objavljeno: Ned Maj 18, 2008 9:02 pm Naslov sporočila: |
|
|
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 |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Maj 18, 2008 10:20 pm Naslov sporočila: |
|
|
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 |
|
|
poule Član
Pridružen-a: Čet 11 Jan 2007 19:53 Prispevkov: 800 Aktiv.: 3.82 Kraj: Ljubljana
|
Objavljeno: Ned Maj 18, 2008 10:37 pm Naslov sporočila: |
|
|
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 |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Maj 18, 2008 10:43 pm Naslov sporočila: |
|
|
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 |
|
|
jurem Član
Pridružen-a: Tor 02 Dec 2003 15:53 Prispevkov: 408 Aktiv.: 1.84 Kraj: Ljubljana
|
Objavljeno: Ned Maj 18, 2008 10:57 pm Naslov sporočila: |
|
|
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 |
|
|
poule Član
Pridružen-a: Čet 11 Jan 2007 19:53 Prispevkov: 800 Aktiv.: 3.82 Kraj: Ljubljana
|
Objavljeno: Ned Maj 18, 2008 10:59 pm Naslov sporočila: |
|
|
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 |
|
|
jurem Član
Pridružen-a: Tor 02 Dec 2003 15:53 Prispevkov: 408 Aktiv.: 1.84 Kraj: Ljubljana
|
Objavljeno: Ned Maj 18, 2008 11:21 pm Naslov sporočila: |
|
|
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 |
|
|
poule Član
Pridružen-a: Čet 11 Jan 2007 19:53 Prispevkov: 800 Aktiv.: 3.82 Kraj: Ljubljana
|
Objavljeno: Pon Maj 19, 2008 6:33 am Naslov sporočila: |
|
|
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 |
|
|
poule Član
Pridružen-a: Čet 11 Jan 2007 19:53 Prispevkov: 800 Aktiv.: 3.82 Kraj: Ljubljana
|
Objavljeno: Pon Maj 19, 2008 6:52 pm Naslov sporočila: |
|
|
a moram kaj nastaviti tudi tukaj, oz. kako lahko s tem potipam, če je živ?
|
|
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
|