Stránka 1 z 1

Bascom - začínám, kdo poradí?

Napsal: 14 lis 2015, 14:23
od denny_ul
Poradí někdo s PWM?
Podle tohoto kódu by měla být funční PWM

Kód: Vybrat vše

$regfile = "attiny13a.dat"
$Crystal=9600000
$hwstack=32
$swstack=8
$framesize=16

Dim B As Byte
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Up

Config Portb.0 = Output

 Do
   For B = 1 To 255
   Pwm0a = B
   Waitms 20
   Next

   For B = 255 To 1 Step -1
   Pwm0a = B
   Waitms 20
   Next
 Loop

 End

Potřeboval bych, aby kmitočet PWM byl 4kHz a zde jsem se dočetl, že je na to vzorec f PWM = f CLK/(2 * n * TOP), tj. 9600000/(2*8*4000)=150.
A teď nevím jestli se použije Icr0=150 nebo Ocr0a=150 a kam to vložit (před a nebo za config timer)

Napsal: 14 lis 2015, 14:57
od Cowley
OT: Ty uz tady budes mit taky vlastni Sekci s tim Bascomem :) jako Samponek.

Ale je pravda ze se na Tva vlakna koukam a taky se alespon neco priucim :)

Napsal: 14 lis 2015, 16:12
od denny_ul
V mém věku už se něco těžko učí z příruček a tak jsem postupem času zjistil, že je lepší, když ti to někdo vysvětlí, kdo už to umí.
Taky když jsem objevil toto forum, tak jsem byl rád za to, že je tu někdo, kdo člověku poradí, když se na něco zeptá a netušil jsem, že to bude někomu vadit :(

Napsal: 14 lis 2015, 17:32
od frpr666
Přejdi z Bascomu na C. Výhodou C je podpora přímo v AVRStudiu od Atmelu.
Ušetříš si kryptické zápisy jako je:
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Up
Co vlastně má dělat ten kód, který jsi napsal ve svém prvním příspěvku?
Edit1: nějaké tipy ohledně pwm jsou zde:http://www.mikrocontroller.net/articles/AVR_PWM

Napsal: 14 lis 2015, 17:55
od nekmil
frpr666:
ten původní program prostě zvětšuje a pak zmenšuje PWM tedy např. jas žárovky či otáčky motoru.
S tím přechodem na C , no nevím, nevím. V těch závorkách bych se já ztratil.

Velice bych doporučoval nějakou "vývojovou desku" např. EVB 5.1
sice se někomu může zdát +/- 1500,-Kčs moc ale co všechno za ty peníze dostanete. A pak lze zkoušet a zkoušet do alelujá.

kousek kodu z regulátoru kolejiště:
'---------------------------------------------------------
'nastavení PWM pro Timer0,Timer1- kmitočet 240Hz změnou Prescale
Run_240:
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down
Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down , _
Compare B Pwm = Clear Down
Return
'---------------------------------------------------------
'nastavení PWM pro Timer0,Timer1- kmitočet 1960Hz změnou Prescale
Run_1960:
Config Timer0 = Pwm , Prescale = 1 , Compare B Pwm = Clear Down
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , _
Compare B Pwm = Clear Down
Return


End 'end program

'Řízení šířkové modulace je jednoduché - změnou proměnné Pwm1a se mění poměr
'impuls/mezera. Maximální hodnota Pwm1a je 255.
'Při Pwm1a = 1 je poměr 1/255
'Při Pwm1a = 2 je poměr 2/254
'Při Pwm1a = 10 je poměr 10/246 atd

'Nastavení Timer1 pro PWM:
'Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up

'Pwm = 8 - osmibitová PWM (Pwm1a = 1 až 255)
'Prescale = 1 - opak.kmit = 20 kHz (při oscilátoru 10MHz)
'Prescale = 8 - opak.kmit = 20/8 kHz) atd
'Compare A Pwm = Clear Down - polarita výst. impulsů je opačná než při Clear Up

'kmitočet PWM=$crystal/Prescale/510 (při rozlišení 8 bitů)

Napsal: 14 lis 2015, 19:55
od Neniu
Mne s Bascomem hodně pomáhá tato kniha http://shop.ben.cz/cz/121165-mikrokontr ... ascom.aspx A koukám, že se dá koupit i jako PDF za velmi příjemnou cenu.

Jinak v simulátoru máš možnost si zobrazit registry, takže nic nebrání tomu kouknout se na ně a zjistíš hnedka, co se kam zapisuje.

Napsal: 14 lis 2015, 19:55
od Neniu
Cowley píše:OT: Ty uz tady budes mit taky vlastni Sekci s tim Bascomem :)


To by náhodou nebyl vůbec špatný nápad.

Napsal: 14 lis 2015, 20:05
od Cowley
Neniu: no vidis, a denny_ul si myslel, ze si z nej delam srandu :)
Naopak ! Tak dlouho jsme s Arduinem otravovali, az jsme byli oddeleni ;)

Napsal: 15 lis 2015, 16:47
od Neniu
Já to myslím vážně, nebylo mi marné tu mít část pro Bascom, část Arduio, část pro C, část pro B, část pro ADA, část pro FORTH... tak, abych se dalo jít přímo do tématu, které mne zajímá.