 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 1:47 am Naslov sporočila: napetos |
|
|
lp
mi lahko kdo pomaga kako naj v bascomu naredim program za atmel usb646 čip
tako da bi na lcd prikazovalniku prikazoval stanja-napetostu iz trimerja |
|
Nazaj na vrh |
|
 |
milan62 Član

Pridružen-a: Ned 04 Jan 2004 23:19 Prispevkov: 2391 Aktiv.: 10.09 Kraj: Kranj
|
Objavljeno: Ned Jun 10, 2012 8:21 am Naslov sporočila: |
|
|
Prvi korak je ta, da na enem pinu kontrolerja atmel usb646 vklopiš in izklopiš LED diodo. To že obvladaš ?
LP _________________ Wasting time online since 1999 |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Ned Jun 10, 2012 10:57 am Naslov sporočila: |
|
|
Se mi zdi da je primerov v programu bascom kar veliko, med drugim tudi ta. Poglej v mapi samples, pa bo. Glej pod ADC. |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 11:54 am Naslov sporočila: |
|
|
takole sem napisal program
dim napetost as word
vrednost1=getadc(5)'al trimer
vrednost2=getadc(4)
locate 1,1
lcd"u="
locate 1,4
lcd napetost
locate 1,7
lcd "v"
locate 1,3
lcd"vrednost1"
locate 1,3
lcd "vrednost2"
Na lcdju mi po tem program ko ga nalozim normalno začne iz nule potem pa ko pride do konca do 1023 pa ga hoočem sppet na začetek dati mi pa ostane na 1023 |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Ned Jun 10, 2012 2:00 pm Naslov sporočila: |
|
|
pred tem si gotovo konfiguriral adc?
Na primer:
Config Adc = Single , Prescaler = Auto , Reference = Avcc
pa tale program je malce čuden...ti na lokacijo 1,3 v dveh zaporednih stavkih najprej zapišeš "vrednost1", takoj zatem pa "vrednost2". Torej se to vrednost1 ptikaže za stotinko sekunde, potem pa jo povozi vrednost2. Pa kam se program vrača (kje je zanka)?
kaj imaš na adc(4)?
jaz bi napisal približno takole:
do
vrednost =getadc(5)
locate 1,1
lcd "U=";vrednost;" V"
loop |
|
Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.00
|
Objavljeno: Ned Jun 10, 2012 2:01 pm Naslov sporočila: |
|
|
MrFreman2 je napisal/a: |
takole sem napisal program
dim napetost as word
do ' vrti
vrednost1=getadc(5)'al trimer
vrednost2=getadc(4)
locate 1,1
lcd"u="
locate 1,4
lcd napetost
locate 1,7
lcd "v"
locate 1,3
lcd"vrednost1"
locate 1,3
lcd "vrednost2"
waitms 200
loop ' zanko |
Je že @mi747 napisal, da začni z ledico. Prižgi jo. Ugasni jo. Nato poskusi z utripanjem in dodaj zanko. ...
Vsak program naj ima jasno strukturo:
+ inicializacija portov, timerjev, ADC-ja, ...
+ glavna "do ... loop" zanka, ki lahko kliče podprograme
+ podprogrami, ki lahko kličejo dodatne podprograme, ...
S takšno zasnovo se ne moreš nikjer izgubiti. _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Ned Jun 10, 2012 2:09 pm Naslov sporočila: |
|
|
spremenljivka napetost bo imela v tvojem primeru vedno vrednost 0, ali pa neko vrednost ki ti jo ob prevajanju programa dodeli kompajler. Kje pa ti spremenljivki napetost dodeliš kako vrednost?
poskusi takole
Koda: |
Config Adc = Free , Prescaler = Auto , Reference = Avcc
Dim Vrednost1 As Word , Vrednost2 As Word , Napetost As Single
Do
Start Adc
Vrednost1 = Getadc(0)
Waitms 20 'to je samo zato, da se znebismorebitnim cudnimvrednostim v registrih ADCL in ADCH
Vrednost1 = Getadc(5)
Waitms 20
Vrednost2 = Getadc(4)
Waitms 20
Napetost = Vrednost1 * 0.0048828125 ' iz ADC vrednosti preracunas napetost
locate 1,1
Lcd "u=" ; Napetost ; "V" ; " "
Locate 2 , 1
Lcd "V1:" ; Vrednost1 ; " V2:" ; Vrednost2 ; " "
Loop
End
|
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 2:58 pm Naslov sporočila: |
|
|
rad bi da mi prikazuje napetost od 0-5v(0-1023bit) |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 3:18 pm Naslov sporočila: |
|
|
pa mi ne prikazuje ,gre mi sam do 0.89v |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Ned Jun 10, 2012 3:34 pm Naslov sporočila: |
|
|
ŠE enkrat: imaš v programu stavek CONFIG ADC? Kako pa sploh veš, da imaš ADC konfiguriran tako, da uporablja vseh 12 bitov? Zakaj ne bereš, kar ti ljudje odgovarjajo? Kaj imaš navedeno za referenco? Prilepi KOMPLETEN PROGRAM, ne samo izsek, tako bo lažje pomagati. |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 4:53 pm Naslov sporočila: |
|
|
$regfile = "usb646.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
Dim A As Integer
Dim Dig_vhod As Byte
Dim Tipka As Integer
Dim Vrednost As Word
Dim Kanal As Byte
Dim Pa_5 As Bit , Pa_4 As Bit , Pa_3 As Bit , Pa_2 As Bit , Pa_1 As Bit , Pa_0 As Bit ' vhodi
Dim Napetost As Word
Ddrd = 255
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Ddrc = 255
Portc = 0
Cls
Do
Vrednost = Getadc(5) 'al trimer
Locate 1 , 1
Lcd Vrednost
Napetost = Vrednost / 200
Locate 2 , 1
Lcd "u="
Locate 2 , 4
Lcd Napetost
Locate 2 , 8
Lcd "v"
Loop
Return
Sedaj sem naredil program, ki mi normalno prikazuje napetost. Problem nastane ko trimer zavrtim do konca (začne se pri 15 pa do 1023). Ko dosežem 1023 kvant, mi ob vrtenju nazaj proti ničli izpiše vrednost večjo od 9000 in jo odšteva nazaj do 150. Napetost pa mi kljub temu izpisuje pravilno od 0-5 V. Program imam za en trimer.. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Ned Jun 10, 2012 4:59 pm Naslov sporočila: |
|
|
ena možnost je da ti to dela zaradi tega ker se števika manjša, zelo hitro gre iz 4- mestnega na tri mestno, zadnji karakter pa se ne izbriše...npr. izpiše ti 1005, naslednja vrednost je npr. 995, ti boš pa videl 9955, ker se zadnja petica ne izbriše. To rešiš na primer takole:
lcd napetost; " "
za prikazano napetostjo vedno napišeš prazen prostor (space). |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Ned Jun 10, 2012 5:17 pm Naslov sporočila: |
|
|
Če bi preizkusil, kar sem ti napisal, bi videl, da dela ravno to. Kako si pa pridi sam gor, če nisi toliko da bi en copy/paste napravil.
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 5:33 pm Naslov sporočila: |
|
|
r gorazd.
Sem poizkusil tvoj program,pa ni bil vredu, |
|
Nazaj na vrh |
|
 |
MrFreman2 Član

Pridružen-a: Tor 15 Nov 2011 16:49 Prispevkov: 22 Aktiv.: 0.13
|
Objavljeno: Ned Jun 10, 2012 7:14 pm Naslov sporočila: |
|
|
Ali je še kakšen drugačen način za izbris številk ko ta : Lcd Napetost ; " " |
|
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: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|