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

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

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

#1 Příspěvek 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)
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#2 Příspěvek 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 :)
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

#3 Příspěvek 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 :(
Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 00:00

#4 Příspěvek 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
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#5 Příspěvek 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ů)
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#6 Příspěvek 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.
Jsem na cestě k šípku.
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#7 Příspěvek 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.
Jsem na cestě k šípku.
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#8 Příspěvek 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 ;)
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#9 Příspěvek 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á.
Jsem na cestě k šípku.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“