Stránka 1 z 1
nastaveni registrů
Napsal: 27 pro 2013, 00:02
od apam
Dobrý den, neví někdo jak nastavit inverzní pwm signál proti tomuhle?
Kód: Vybrat vše
$regfile = "m8def.dat"
$crystal = 16000000
portb.1= output
Tccr1a = Bits(com1a1 , Com1b1 , Wgm11)
Tccr1b = Bits(wgm13 , Wgm12 , Cs11)
icr1 = 20000
Ocr1a = 500
Do
Loop
End
Důležitý je pro mě výstup 100Hz.
Děkuji za rady.
Napsal: 27 pro 2013, 10:47
od petrfilipi
Co to je inverzní PWM signál? Není možné ho vyrobit tranzistorem?
Nevím v čem je to napsáno, ale dělá takovýto program vůbec něco? Netočí se pořád donekonečna ve smyčce Do/Loop?
V programu je jen nějaké nastavení registrů ICR, OCR1A a časových/čítačových registrů. Ale neřekl bych, že to bude fungovat samo o sobě, bez přerušení. Ale možná ano.
Petr Filipi
Napsal: 27 pro 2013, 11:53
od nekmil
Kukni na příkaz "Config timer1"
např.
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down
"Clear Down" máme jednu polaritu PWM
"Clear Up" máme polaritu opačnou
Napsal: 27 pro 2013, 12:12
od apam
>petrfilipi- přidávat tranzistor, to je moc složité... fungovat to funguje..
už jsem na to přišel.
Koho to zajímá tak je to takto pro oba kanály a i b:
Kód: Vybrat vše
Tccr1a = Bits(com1a1 , Com1a0 , Com1b1 , Com1b0 , Wgm11)
Tccr1b = Bits(wgm13 , Wgm12 , Cs11)
>nekmil- s tím nastavením co jsi psal neudělám těch 100Hz na výstupu.
Díky za rady.
Napsal: 27 pro 2013, 12:19
od nekmil
Kmitočet PWM závisí na taktovacím kmitočtu a "Prescale = xx".
To co jsem uvedl byl jenom příklad.
a jde to i bez "závorek" viz "help"
Config Timer1 = Pwm , Pwm = 8 , Compare_A_Pwm = Clear_Up , Compare_B_Pwm = Clear_Down , Prescale = 1
