|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
tozir Član
Pridružen-a: Pon 17 Mar 2008 19:10 Prispevkov: 187 Aktiv.: 0.96 Kraj: Celje
|
Objavljeno: Čet Avg 07, 2008 3:49 pm Naslov sporočila: |
|
|
Pozdravljeni!
Upam da sem prav umestil vprašanje. Imam en projekt ,kjer sem uporabil pine na katerih se uporablja JTAG, za prižiganje LEDic. Seveda stvar ne dela in po pregledu datasheeta sem ugotovil da je treba fuse byte sprogramirati tako, da se JTAG izklopi. Muči me pa to da mi STK500 extended noče prebrati zgornjega fuse byta ampak mi samo spodnjega.
_________________ http://www.rielektronika.comule.com/ |
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Avg 24, 2008 12:45 pm Naslov sporočila: |
|
|
Pozdravljeni!
Delam nekaj podobnega kot je tukaj naredil Silvo. Napisal sem program po helpu iz Bascoma za branje A/D. Program deluje,v tej temi sem tudi vse prebral kaj je v zvezi z A/D-jem. Kot referenco imam 5V(AREF imam vezan na +5V),uporabljen imam prvi kanal,vse skupaj pa furam z attiny26.
Spisal sem naslednji program,ki pa po pričakovanjih deluje tako kot treba. Za spreminaje napetosti,sem uporabil 1k trimer,ki lepo dela od 0 pa do 5V.
Koda: |
Config Lcdpin = Pin , Db7 = Portb.3 , Db6 = Portb.2 , Db5 = Portb.1 , Db4 = Portb.0 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 1
Cursor Off
Dim W As Word , W2 As Word , Stotinke As Word , Desetinke As Word
Config Adc = Single , Prescaler = Auto
Start Adc
Cls
Do
W = Getadc(0)
W2 = W * 50
W2 = W2 / 1023
Stotinke = W2 / 10
Desetinke = W2 Mod 10
Locate 1 , 1
Lcd Stotinke ; "," ; Desetinke; "V";
Loop
|
Sedaj me pa zanima kako bi naredil izračune,da bi imel za konkreten primer,da bi meril napetost od 0 pa do 100V? Uporabil sem kar isti napetostni delilnik kot Silvo,se pravi 680 ter 56k
Napetostno razmerje napetostnega delilnika znaša 5/100=1/20=0,05.
R1=56k
R2=680
_________________ Denis |
|
Nazaj na vrh |
|
|
zlabo Član
Pridružen-a: Sre 16 Jan 2008 21:38 Prispevkov: 283 Aktiv.: 1.43 Kraj: Domžale-Kamnik
|
Objavljeno: Sre Okt 08, 2008 5:25 pm Naslov sporočila: |
|
|
Pozdravljeni!
Bom kar tukaj vprašal da nebom nove teme odpiral.
Isto vprašanje sem zastavil tudi na Svet elektronike forumu, pa bom pastal še tukaj.
Delam z grafičnim LCD-jem (KS107/108-) in touchscreenom. Vse mi dela ok, LCD nariše oziroma napiše kar mu naročim.
Imam pa en problem in sicer pri pisanju na točno zaželjeno lokacijo. Namreč pri ukazu "LCDAT y , x , var" me moti ker BascomAVR y kordinato šteje po vrsticah.
Primer:
Koda: |
Lcdat 3 , 5 , "[slovenščina je zame španska vas]" , 0 |
Bascom interpretira 3-jko kot 3ja vrstica za pisavo 8x8, torej gre na 24-ti pixel po y kordinati (3*8 ), medtem ko po x osi na 5 pixel. Nima veze katero pisavo imaš, vedno bo y kordinato štel po 8 pixlov. Jaz pa bi rabil da mi spremeljivko izpisuje na točno želeno lokacijo v obliki y(pixel), x(pixel), tako kot je to pri ukazu "Showpic x , y , ime_slike"
Se je že kdo ukvarjal s tem? Je namreč zelo nerodno ker po y osi lahko "skačem "samo po 8 pixlov... |
|
Nazaj na vrh |
|
|
Vlado Član
Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 561 Aktiv.: 2.53 Kraj: Ljubljana
|
Objavljeno: Sre Okt 08, 2008 6:10 pm Naslov sporočila: programiranje v Bascom AVR |
|
|
Zlabo,
namesto ukaza LCDAT uporabi ukaz LOCATE. LCDAT je ukaz za color displej!
Tudi Help se splača kdaj pogledati, tam pa piše:
"LOCATE row,column : Will place the cursor at the specified row and column.
The row may vary from 1 to 16 and the column from 1 to 40. This depends on the size and mode of the display".
Vlado |
|
Nazaj na vrh |
|
|
zlabo Član
Pridružen-a: Sre 16 Jan 2008 21:38 Prispevkov: 283 Aktiv.: 1.43 Kraj: Domžale-Kamnik
|
Objavljeno: Sre Okt 08, 2008 7:47 pm Naslov sporočila: |
|
|
Ne, LCDAT je tako za barvne kot tudi za enobarvne grafične LCD-je (poglej v bascom help). Ukaz LOCATE je pa namenjen za alfanumerične displeye, kjer sta x in y stolpec in vrstica.
Jaz pa potrebujem postaviti pisanje na točno določeno kordinato, naprimer na pixel 30,50 (y,x), tako kot se to zgodi ob ukazu SHOWPIC, kjer sliko lahko postaviš na točno določeno mesto x , y |
|
Nazaj na vrh |
|
|
Pobesneli Član
Pridružen-a: Sre 02 Jan 2008 1:24 Prispevkov: 1070 Aktiv.: 5.41 Kraj: Ajdovščina
|
Objavljeno: Čet Okt 16, 2008 8:26 pm Naslov sporočila: |
|
|
Naj mi kdo pomaga.
Na atmega 8 poskusam priključit grafični ekranček,nikakor pa mi ne uspe nič prikazat na njem.
Zaniam me kakšna je razlika med SED lcdji in brez tistega SED.
KEr če ne konfiguriram pod Config Graphlcd 192 * 64sed,mi sploh noče prevest.
in še eno vprašanje,kako nastavit fuse bit da dela z zunanjim 11,059Mhz kristalom? |
|
Nazaj na vrh |
|
|
tozir Član
Pridružen-a: Pon 17 Mar 2008 19:10 Prispevkov: 187 Aktiv.: 0.96 Kraj: Celje
|
Objavljeno: Ned Okt 19, 2008 4:00 pm Naslov sporočila: |
|
|
Lep pozdrav!
Ali se da v Bascom-u več kot enkrat definirati kam naj skoči ob prekinitvi? Namreč mi error napiše ko v programu hočem drugič definirati eno drugo labelo. _________________ http://www.rielektronika.comule.com/ |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Ned Okt 19, 2008 10:12 pm Naslov sporočila: No |
|
|
No, na tvoje direktno vpašanje, ali se da ime interrupt rutine spreminjati, ne vem.
Vendar tudi če se ne da, lahko v tisti eni interrupt rutini imaš programsko kretnico/stikalo, ki preusmeri delovanje interrupt podprograma zdaj sem, zdaj tja. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
LEDuser Član
Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.67 Kraj: Ljubljana
|
Objavljeno: Ned Dec 14, 2008 3:48 pm Naslov sporočila: |
|
|
Ker sem pred kratkim obupal nad assemblerjem sem preklopil na Bascom. Naučil sem se prižigati LED ... zataknilo pa se mi je pri ADCju. Če napišem program ki mi bere z enega ADCja v spremenljivko W (P = W / 10) in z nekaj IF stavki preverjam ali je P > 5 (10,15,20) mi prižiga izhode 0,1,2,3 se mi ob spreminjanju napetosti na ADC (0-100%) v prvi četrtini prižgejo v zaporedju vse ledice, v drugi četrtini se ugasnejo in se spet prižgejo v zaporedju...
Po moji logiki bi bilo tako:
ADC prebere stanje in ob 100% bi vrgel ven 1023. če to deliš z 10 bi moralo biti potemtakem stanje od 0-102. Če bi to razdelil na 4 enake dele (npr 25) in imam na vhodu ADC 1/4 napetosti (AVCC) bi morala LEDica zasvetiti pri takem stavku:
If P > 25 Then
Portd.0 = 1
Else
Portd.0 = 0
End If
Ne vem kaj delam narobe ampak zdi se mi da me tale Atmega8 malo _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Dec 14, 2008 4:34 pm Naslov sporočila: |
|
|
LEDuser je napisal/a: |
Ker sem pred kratkim obupal nad assemblerjem sem preklopil na Bascom. Naučil sem se prižigati LED ... zataknilo pa se mi je pri ADCju. Če napišem program ki mi bere z enega ADCja v spremenljivko W (P = W / 10) in z nekaj IF stavki preverjam ali je P > 5 (10,15,20) mi prižiga izhode 0,1,2,3 se mi ob spreminjanju napetosti na ADC (0-100%) v prvi četrtini prižgejo v zaporedju vse ledice, v drugi četrtini se ugasnejo in se spet prižgejo v zaporedju...
Po moji logiki bi bilo tako:
ADC prebere stanje in ob 100% bi vrgel ven 1023. če to deliš z 10 bi moralo biti potemtakem stanje od 0-102. Če bi to razdelil na 4 enake dele (npr 25) in imam na vhodu ADC 1/4 napetosti (AVCC) bi morala LEDica zasvetiti pri takem stavku:
If P > 25 Then
Portd.0 = 1
Else
Portd.0 = 0
End If
Ne vem kaj delam narobe ampak zdi se mi da me tale Atmega8 malo |
PIC asm <--> AVR asm
A si preveril AD?Dobro bi bilo,da bi še zraven priklopil LCD pa gledal stanje AD-ja,tako boš lahko opazil kaj se dogaja,samo verjetno je napaka v kodi. _________________ Denis |
|
Nazaj na vrh |
|
|
LEDuser Član
Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.67 Kraj: Ljubljana
|
Objavljeno: Ned Dec 14, 2008 7:11 pm Naslov sporočila: |
|
|
Ko bom prišel domov bom prilepil kodo. No naj povem da LCDja še nimam ampak mislim da če je 10-bitni pretvornik potem da pri 100% AVCC vrednost 1023. No ali lahko spišeš kratko kodo da vidim kje sem se uštel ? Ko bom zavrtel trimerček do 1/4 bo gorela 1. LED ko bo na polovico 2.LED itd.
Hvala, LP Matej _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Dec 14, 2008 7:32 pm Naslov sporočila: |
|
|
Malo višje sem enkrat pripel kodo za pogon AD-ja in uporabo LCD-ja.
Prikazuje ti samo število bitov,to nekam umes med vrsticami vnesi za prikaz na LCD,sicer pa ti bom jutri na faksi malo bolj razložil.
Koda: |
Config Lcdpin = Pin , Db7 = Portb.3 , Db6 = Portb.2 , Db5 = Portb.1 , Db4 = Portb.0 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 1
Cursor Off
Dim W As Word , W2 As Word , Stotinke As Word , Desetinke As Word
Config Adc = Single , Prescaler = Auto
Start Adc
Cls
Do
W = Getadc(0)
LCD W
Loop |
P.S: ICD2 clon sem oživel in veselo programira Tudi ostalo sem ti sprogramiral. Več ti jutri povem _________________ Denis |
|
Nazaj na vrh |
|
|
Misko Član
Pridružen-a: Ned 16 Apr 2006 15:15 Prispevkov: 549 Aktiv.: 2.51 Kraj: MS
|
Objavljeno: Pon Dec 15, 2008 12:32 am Naslov sporočila: |
|
|
Rabim bi nekaj pomoči na LCD zaslonu 2*16 bi rad zapolnil obe vrsti z zvezdicami (*) vendar mi prvo vrstico zapolni samo do 8 znakov preostalo pa je prazno. Druga vrstica je prikazana pravilno.
Koda: |
Napis:
Cls
Locate 1 , 1
Lcd "****************"
Locate 2 , 1
Lcd "****************"
Wait 1
Goto Napis |
|
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3352 Aktiv.: 17.02
|
Objavljeno: Pon Dec 15, 2008 7:51 am Naslov sporočila: |
|
|
Poskusi še nekaj takega:
Koda: |
Locate 1,8
Lcd"********"
|
In poglej, kam ti napiše zvezdice. Nekateri LCDji so definirani, kot da imajo 8 znakov v vrstici. |
|
Nazaj na vrh |
|
|
Misko Član
Pridružen-a: Ned 16 Apr 2006 15:15 Prispevkov: 549 Aktiv.: 2.51 Kraj: MS
|
Objavljeno: Pon Dec 15, 2008 8:23 am Naslov sporočila: |
|
|
Sedaj sem ga še nekajkrat sprogramiral z isto kodo pa sedaj vredu deluje. LCD je DEM16216. |
|
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
|