So I guess I could have it running in the background, then when I want to start the horizontal clocks, I could do an ON INTERRUPT command to make sure it is on the rising edge of the Reset HWPM clock.
So I guess I could have it running in the background, then when I want to start the horizontal clocks, I could do an ON INTERRUPT command to make sure it is on the rising edge of the Reset HWPM clock.
you don't have to make sure it's on the rising edge. Interrupt will do it for you. When you set your interrupt you can select rising or falling edge.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
And I set that in the registers, right? And then I can run a wire from PIN 17 to an interrupt pin and do an ON INTERRUPT command? Would it look something like this or totally different? I am going to try and find some examples.
horizloop:
ON INTERRUPT
PORTB.2 = 0
PORTB.3 = 1
PAUSEUS 139
PORTB.3 = 0
PORTB.2 = 1
PAUSEUS 50
ADCIN 0, adval ' A/D 8 bit value from PORTA.0 into adval
SEROUT2 PORTC.6,16416,[BIN8 adval,13,10] ' Output 8 bit word serially to PC from C.6
PAUSE 87
horizpulse = horizpulse + 1
IF horizpulse < 784
NOP...
i'll have more spare time tomorrow for that... BUT have a look on this thread download the code i did. It use the interrupt on an pin to do specific task. Can be handy to start. Code is well documented.
ON INTERRUPT GOTO define the place to go when an intterupt happen. See PBP manual on that statement. care will have to be made in the interrupt routine too. sould not be too loang... at minimum less than the time between each interrupts.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Well I would think I would only need one in the loop, just to make sure the Reset(HWPM) and Horizontal 2 are on their rising edge as in synch as possible.
What if I did something like this??
horizloop:
PORTB.2 = 0
PORTB.3 = 1
PAUSEUS 139
ENABLE
ON INTERRUPT GOTO H2lock
DISABLE
PAUSEUS 15
ADCIN 0, adval ' A/D 8 bit value from PORTA.0 into adval
SEROUT2 PORTC.6,16416,[BIN8 adval,13,10] ' Output 8 bit word serially to PC from C.6
PAUSEUS 87
horizpulse = horizpulse + 1
IF horizpulse < 784 THEN
GOTO horizloop
ELSE
PAUSEUS 270
GOTO vertloop
ENDIF
H2lock:
PORTB.3 = 0
PORTB.2 = 1
RESUME
NOP, On Interruot goto is placed at the header of your code before your main loop. Since it's working in background, it will jump by himself to the interrupt routine. did you look at my previous link?
INTCON and probably others have to be set for interrupt type/source.
i'll make something like this later today.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks