Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.27 Kraj: Ljubljana
|
Objavljeno: Sob Jan 31, 2009 7:39 pm Naslov sporočila: Bascom Attiny13 in ADC |
|
|
Zanima me zakaj mi zmanjka SRAMa ko hočem uporabiti ADC v bascomu? Ali obstaja kakšna koda ki bi omogočila uporaba ADCja?
Imam pa še en problem in sicer ko hočem uporabiti PWM (Bascom) mi vedno znova piše napako. Uporabljam spodnjo konfiguracijo Timerja in ukaz Pwm1a = x.
Koda: |
...
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
pwm1a = 100
pwm1b = 50
...
|
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Jan 31, 2009 7:45 pm Naslov sporočila: |
|
|
Bascoma sicer ne poznam. Sram ti lahko pokuri sklad. (kaka vgreznena zanka s katere se ne vračaš) Če prevajalnik omogoča pretvorbo v assemblersko kodo, jo pripni.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Vlado Član

Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 563 Aktiv.: 2.38 Kraj: Ljubljana
|
Objavljeno: Sob Jan 31, 2009 9:11 pm Naslov sporočila: |
|
|
Kaj pa ostale spremenljivke, koliko tega imaš v programu?
Mogoče imaš prevelike vrednosti za HWStack, SWStack in Framesize, in ti zmanjka prostora za spremenljivke. Moraš malo paziti ker imaš samo 64 bajtov Ram-a,Bascom pa je potraten.
Vlado
|
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.27 Kraj: Ljubljana
|
Objavljeno: Sob Jan 31, 2009 9:45 pm Naslov sporočila: |
|
|
Imam samo eno spremenljivko (word) in z ukazom GetADC(1) = W ali brez mi zmanjka prostora. Zdi se mi da je to skoraj nemogoče saj ko uporabljam mego8 ki ima samo 8x več spomina mi ni nikoli zmanjkalo prosotra pa sem uporabljal ogromno spremenljivk.
Kar se pa tiče pretvorbe .bas v .asm pa ne najdem v Bascomu.
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
Vlado Član

Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 563 Aktiv.: 2.38 Kraj: Ljubljana
|
Objavljeno: Ned Feb 01, 2009 12:01 pm Naslov sporočila: |
|
|
Hm . . .
kot sem ti povedal, predvidevam da nisi na začetku programa nastavil stack, vendar je ostal tako kot je v Bascom -> Options.
Že sam stack ti zavzame vseh 64 bajtov rama!
M8 pa ima 1 K SRAM-a kar je precej precej več kot tistih 64 bajtov.
Vlado
Opis: |
|
Velikost datoteke: |
32.06 KB |
Pogledana: |
16 krat |

|
|
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.27 Kraj: Ljubljana
|
Objavljeno: Ned Feb 01, 2009 2:39 pm Naslov sporočila: |
|
|
Super Vlado sedaj deluje. Vprašal bi te tudi kako je s PWM ker pri megi mi je to normalno delovalo sedaj pa ko kliknem Compile mi izpiše napako:
Error: 46 Assignment error [PWM1A:0 P: 2], in file: ...
Koda: |
$regfile = "attiny13.dat"
$crystal = 1000000
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Timer1
Start Adc
Dim W As Word
Dim P As Byte
W = 0
P = W / 4
Do
W = Getadc(1)
Pwm1a = P
Pwm1b = 255 - P
Loop
|
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
Vlado Član

Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 563 Aktiv.: 2.38 Kraj: Ljubljana
|
Objavljeno: Ned Feb 01, 2009 3:41 pm Naslov sporočila: |
|
|
Hoj,
treba bo prebrati datashet od ATTiny13, ni druge pomoči.
V tem primeru ni dovolj pogledati sample in Help.
Ali ATTiny13 ima Timer1?
Preberi vse kaj je v zvezi z Timer-jem pa bo šlo.
Vlado
|
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.27 Kraj: Ljubljana
|
Objavljeno: Ned Feb 01, 2009 4:06 pm Naslov sporočila: |
|
|
Hvala za pomoč vendar je google vseveden in sem našel kodo. Zanima me pa še kako nastaviti frekvenco da bo točna. V Bascomu sem nastavil frekvenco ($crystal = 4800000) nato pa sem sprogramiral v AVR studio (ker mi v bascomu ko izberem STK500 extended izpiše napako "103") in pod fuse biti nastavil notranji oscilator frekvence 4.8MHz. V programu sem imel zanko Wait 1 in ko sem čip sprogramiral mi je utripalo kod da bi bilo Wait 10.
Prilagam kodo če jo kdo rabi.
Koda: |
$regfile = "attiny13.dat"
$crystal = 1000000
[b]Config Timer0 = Pwm , Pwn = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
Enable Timer0
[/b]
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim W As Word
Dim P As Byte
Config Portb.0 = Output
Config Portb.1 = Output
W = 0
Do
W = Getadc(1)
P = B / 4
Ocr0a = P
Ocr0b = 255 - p
Loop
|
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
TilenS Član

Pridružen-a: Čet 24 Nov 2005 12:29 Prispevkov: 556 Aktiv.: 2.35
|
Objavljeno: Ned Feb 01, 2009 4:10 pm Naslov sporočila: |
|
|
V programu imaš "$crystal = 1000000" še kar na 1Mhz ?
Lp
|
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.27 Kraj: Ljubljana
|
Objavljeno: Ned Feb 01, 2009 4:15 pm Naslov sporočila: |
|
|
Ne to je samo zadnja koda ki sem jo napisal. Sem poizkusil z obema ujemajočima frekvencama pa se ne ujemata v praksi
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Feb 01, 2009 5:16 pm Naslov sporočila: |
|
|
LEDuser je napisal/a: |
Ne to je samo zadnja koda ki sem jo napisal. Sem poizkusil z obema ujemajočima frekvencama pa se ne ujemata v praksi  |
Kaj pa fuse bit CKDIV8 ? Kako je s kalibracijo oscilatorja? Zna vmesnik za programiranje v bascom-u kako prebrati signature byte ter kalibracijsko vrednost "spraviti" v OSCCAL register?
PS
Na točnost internega oscilatorja se ne preveč zanašat. Po izkušnjah je kakor pri pic-ih kot tudi AVR-jih - (s katerimi sem delal) kar precej netočen in je zelo odvisen od temperature okolice. Če so v rabi časovno odvisne aplikacije interni oscilator ni primeren.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
DejanX Član

Pridružen-a: Sob 11 Okt 2008 18:09 Prispevkov: 72 Aktiv.: 0.35 Kraj: Celje
|
Objavljeno: Pet Feb 06, 2009 4:59 pm Naslov sporočila: |
|
|
Silvo je napisal/a: |
PS
Na točnost internega oscilatorja se ne preveč zanašat. Po izkušnjah je kakor pri pic-ih kot tudi AVR-jih - (s katerimi sem delal) kar precej netočen in je zelo odvisen od temperature okolice. Če so v rabi časovno odvisne aplikacije interni oscilator ni primeren. |
To imaš prav, vendar pa ga lahko spraviš do takšne mere, da ti v večini primerov zadostuje. Za kakšen prenos podatkov recimo.
Vendar je pa dobro imeti v kodi kakšno funkcijo za kalibracijo oscilatorja in jo zaženeš ob vsakem zagonu. Tako je potem še najbolj natančno.
|
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Pet Feb 06, 2009 8:25 pm Naslov sporočila: |
|
|
... in potem se apliakcija segreje in zadeva neha funkcionirat.
Interni oscilator mikrokontrolerjev NI primeren za prenos, ki ne vsebuje takta (ali locenega ali pa vkomponiranega v tok podatkov).
_________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Feb 07, 2009 12:19 am Naslov sporočila: |
|
|
Sokrat je napisal/a: |
... in potem se apliakcija segreje in zadeva neha funkcionirat.
Interni oscilator mikrokontrolerjev NI primeren za prenos, ki ne vsebuje takta (ali locenega ali pa vkomponiranega v tok podatkov). |
Točno. Tipičen primer sem doživel pred kratkim.Šlo je za RC5 protokol, pri katerem se lahko privošči malenkostno odstopanje oscilatorja. Tukaj je bilo govora o tem. Srečkotu sem poslal sprogramiran mikrokontroler, ki je pri meni deloval brez problema. Njemu zadeva ni delovala. Oscilator se je pri max 5°C spremembi temperature toliko spremenil, da je branje RC5 protokola preveč zahajalo. Ko je dodal kristal je stvar delala kot mora.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
DejanX Član

Pridružen-a: Sob 11 Okt 2008 18:09 Prispevkov: 72 Aktiv.: 0.35 Kraj: Celje
|
Objavljeno: Sob Feb 07, 2009 9:02 am Naslov sporočila: |
|
|
Za kakšne naprave, ki jih potrebuješ za recimo pol ure enkrat na teden, lahko brez težav uporabljaš notranji osciloskop.
Če pa želiš, da je stabilno in bo prižgano 24/7 in podobno pa je zunanji osciloskop res potreben.
|
|
Nazaj na vrh |
|
 |
|