| ??? 07/29/09 20:06 Read: times |
#168011 - slowdown Responding to: ???'s previous message |
But all it does is slow down the code since both DJNZ Rn and JNB use the same number of cycles. Here's how I would do this:
;Demonstration only. Timer setup is your problem.
push ACC ;Save Accumulator
push PSW ;Save Program Status Word
mov PSW, #08 ;Select Register bank 1
djnz r0,nxtr1 ;Decrement and test r0 for zero
clr P2.0 ;If it is, turn off the bit
nxtr1: djnz r1,nxtr2 ;Decrement and test r1 for zero
clr P2.1 ;If it is, turn off the bit
nxtr2: djnz r2,nxtr3 ;Decrement and test r2 for zero
clr P2.2 ;If it is, turn off the bit
nxtr3: ................
djnz CTR, ENDi
mov CTR, #255 ;Reload CTR counter
mov r0,PWM0 ;Reload registers with PWM values
mov r1,PWM1
.......
mov P2,#255 ;Turn all bits on again
ENDi: pop PSW ;Restore Program Status Word
pop ACC ;Restore Accumulator
reti
|
| Topic | Author | Date |
| Simple PWM to drive led | 01/01/70 00:00 | |
| Loop lasts too long! | 01/01/70 00:00 | |
| I put the delay... | 01/01/70 00:00 | |
| Did you see? | 01/01/70 00:00 | |
| didnt noticed! | 01/01/70 00:00 | |
| Ok, try the following... | 01/01/70 00:00 | |
| the JMP | 01/01/70 00:00 | |
| I thought this was your intention... | 01/01/70 00:00 | |
| Another try | 01/01/70 00:00 | |
| is possible to filter the pwm output... | 01/01/70 00:00 | |
| PWM from a Timer interrupt? | 01/01/70 00:00 | |
| questions | 01/01/70 00:00 | |
| best code until now | 01/01/70 00:00 | |
| read replies | 01/01/70 00:00 | |
| will lower refresh rate | 01/01/70 00:00 | |
| Time to switch... | 01/01/70 00:00 | |
| Wrong. | 01/01/70 00:00 | |
| my code is doing what I want | 01/01/70 00:00 | |
| TIming | 01/01/70 00:00 | |
| FOR NOW!!!! | 01/01/70 00:00 | |
| The old story... | 01/01/70 00:00 | |
| DJNZ | 01/01/70 00:00 | |
| Dec | 01/01/70 00:00 | |
| Do nothing? | 01/01/70 00:00 | |
| Speed | 01/01/70 00:00 | |
| slowdown | 01/01/70 00:00 | |
| Chico | 01/01/70 00:00 | |
| Not yet... | 01/01/70 00:00 | |
good catch | 01/01/70 00:00 |



