Yeah I already started that, but had no idea, going from word to byte will save that much space
I'm still thinking, decathron is a ring counter/shift register, so maybe there is some other ways of controlling it....
Yeah I already started that, but had no idea, going from word to byte will save that much space
I'm still thinking, decathron is a ring counter/shift register, so maybe there is some other ways of controlling it....
And stop using HIGH/LOW, those waste both time and space.
The animation can most likely be done with two FOR loops. An outer that steps thru the starting position from 1 to 29 and an inner that "sweeps the circle" one revolution starting/stopping at the dot pointed to by the outer loop.
If I'm not mistaken the effect you're after is similar to the the common "please wait the computer is busy" circle thingy you see on Windows systems?
/Henrik.
You can't do it with two FOR loops, because you have to consider the reset pin and fact that number of dots is even, but number of control pins is odd. So it is always required to add an extra step out of loop, depending on even/odd current position.
The effect I'm making is as follows. Rotation starts from dot 1 and comes again to dot 1, stops there for a second, then quickly rotates one full loop, but stops at dot #1. Waits for a second, full spin and stop at dot #2 and so on, till it makes full turn.
If you say so :-)
Do you have a datasheet describing the driving signals, I'm having some difficulties understanding how it works based on your description.
/Henrik.
I have only Russian book about it. But principle of operation is nicely shown in animation here:
https://threeneurons.wordpress.com/dekatron-stuff/
Well, I have some doubts about this. If it relates to output port registers I think it is necessary to use High/Low commands. Or at least this used to be the case with older versions of PBB.
Direct control of port registers like this portb.0=1 may cause problems when the program is long because of memory page issues. I may be wrong here. Anyone?
Ioannis
the only problem with high/low is that they waste time and code space setting/clearing the tris register ,every time they are invoked.If it relates to output port registers I think it is necessary to use High/Low commands.
the only issue with direct port writes once you have the tris reg set appropriately is the potential for rmw issues , especially at high clock speeds.Direct control of port registers like this portb.0=1 may cause problems when the program is long because of memory page issues.
always use lat regs if possible and a shadow reg otherwise if rapid sequential port manipulation of individual pins will be employed
Warning I'm not a teacher
Most everything PIC made in the past decade features LATx Registers;
LATB.0 = 1
(Of course you could also insert a bit of ASM if FOSC cycles are important
@ BANKSEL LATB
@ BSF LATB,0
For this particular case, speed is not an issue, since these tubes have couple of KHz max operating frequency, and in my case there are Pause 30 and Pause 1000 statements![]()
Run into strange problem - setting GPIO.5 as input messes with GPIO.4 - it becomes high when GPIO.5 is read, so disrupts complete code routine. I'm using TRISIO=%00100000 to make GPIO.5 as input. If I disable it as input, then other code works fine.
Bookmarks