Pozdrav svima
Modifikaovao sam jedan program u picbasic pro, koji sam našao na netu, da dva pina pica-a 16F628a PORTA.0 I PORTA.1 da naizmečno dimuju pwm-om se mimoilaze u isto vreme.
U principu sve rade ok, ali jedino što ne znam da li je moguće sa ovim programom napravi da:
Kada je PORTA.0 100% HIGH (upaljen), da PORTA.1 bude 0% LOW, (ugašen) logička 0.
Za sad radi kada PORTA.0 maksimalno 99% gore i drugi pin PORTA.1 je maksimalno 1% dole, kao na slici, ne idu 100% gore i 0% dole
Hvala svima unapred
PIC 16F PWM
Moderators: pedja089, stojke369, [eDo], trax
PIC 16F PWM
- Attachments
-
- PWM 1.jpg (40.54 KiB) Viewed 2687 times
-
- PWM 2.jpg (42.69 KiB) Viewed 2688 times
Re: PIC 16F PWM
Izvinjavam se zaboravih da postavim kod , ovo je kod u picbasic pro:
Code: Select all
define osc 4
PORTA=0:portb=0
TRISB=%00111111
TRISA=%00000000
'-----------------------------------------------------------------
ON INTERRUPT GoTo PROGRAM
OPTION_REG=%00001000
INTCON=%10100000
CMCON=7
'----------------------------------------------------------------------------
R var byte
G var byte
RH VAR BYTE
GH VAR BYTE
RL VAR BYTE
GL VAR BYTE
D VAR BYTE
I VAR BYTE
s var byte
'-----------------------------------------------------------------------------
CLEAR
PAUSE 200
TMR0=243
R=1
G=1
RH=r:RL=100-rH
gh=g:gl=100-gH
PORTA=%00001111
'-----------------------------------------------------------------------------
START:
for s=0 to 255
G=G-1:IF G=0 THEN G=1
R=R+1:IF R=100 THEN R=99
GOSUB DELAY
next s
for s=0 to 255
R=R-1:IF R=0 THEN R=1
G=G+1:IF G=100 THEN G=99
GOSUB DELAY
next s
GOTO START
;**********************************************************
DELAY:
FOR I=0 TO 255:NEXT
RETURN
DISABLE
;**********************************************************
PROGRAM:
IF PORTA.0=1 THEN
RH=RH-1
IF RH=0 then
PORTA.0=1-PORTA.0
RH=R
endif
ELSE
RL=RL-1
IF RL=0 THEN
PORTA.0=1-PORTA.0
RL=100-Rh
ENDIF
ENDIF
IF PORTA.1=1 THEN
GH=GH-1
IF GH=0 then
PORTA.1=1-PORTA.1
GH=G
ENDIF
ELSE
GL=GL-1
IF GL=0 THEN
PORTA.1=1-PORTA.1
GL=100-Gh
ENDIF
ENDIF
TMR0=243
INTCON.2=0
RESUME
ENABLE
END