Důležité je rozlišení - krok, který potřebuješ. Ale 400Hz není problém, dělal jsem něco takového pro 4kHz pomocí přerušení. Ono spíš záleží, jestli procesor dělá hlavně PWM, nebo především něco jiného a kolik kanálů potřebuješ. Jednoduchým řešením je ovšem dostupná 12F683, která má PWM.
Jednoduchý příklad:
kód:
;**********************************************************************
; Files required: <P12F675.INC>
;
;**********************************************************************
list p=12F675 ; list directive to define processor
#include <P12F675.INC> ; processor specific variable definitions
errorlevel -302
__CONFIG _CP_OFF &_CPD_OFF & _WDT_OFF & _MCLRE_OFF &_BODEN_OFF &_PWRTE_ON &_INTRC_OSC_NOCLKOUT
;--------- VARIABLE DEFINITIONS ---------------------------------------
#define RAM_Start 0x20
CBLOCK RAM_Start
ucrHI ; universalni registr HI
ENDC
;--------- CONSTANTS DEFINITIONS---------------------------------------
vykon EQU 0x80 ; pozadovany vykon 50%
led_OUT EQU GPIO2 ; LED proti zemi
;----------------------------------------------------------------------
ORG 0x000 ; Processor reset vector
reset
goto LED_UP ; Go to beginning of program
ORG 0x004 ; interrupt vector location
;----------------------------------------------------------------------
; Podprogram pro PWM LED
;----------------------------------------------------------------------
LED_UP
movlw vykon
loop_PWM movwf ucrHI ; Ton
bsf GPIO,led_OUT ; LED ON
lole0 decfsz ucrHI,F
goto lole0
movwf ucrHI
comf ucrHI,F ; Toff = T - Ton
bcf GPIO,led_OUT ; LED OFF
lole1 decfsz ucrHI,F
goto lole1
goto loop_PWM
Založen: Nov 21, 2005 Příspěvky: 524 Bydliště: Bratislava
Zaslal: pá březen 30 2007, 12:29 Předmět:
Spravíš dva (štyri) sa samostatné cykly pre zapnutie, vypnutie dvoch kanálov. _________________ Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.