If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Hi Derrel,
Thanks for the code, Unfortunately I was hoping for something that would allow me to set different values to the duty cycle of each channel. The way I have it configured I use CH# as the var name:
and change the duty in this manor:Code:DEFINE SPWM_FREQ 100 ; SPWM Frequency DEFINE SPWM_RES 101 ; SPWM Resolution DutyVars VAR BYTE[16] ; DutyCycle Variables CH1 VAR DutyVars[0] ; group them in an array for easy access CH2 VAR DutyVars[1] ; with FOR loops etc. CH3 VAR DutyVars[2] CH4 VAR DutyVars[3] CH5 VAR DutyVars[4] CH6 VAR DutyVars[5] CH7 VAR DutyVars[6] CH8 VAR DutyVars[7] CH9 VAR DutyVars[8] CH10 VAR DutyVars[9] CH11 VAR DutyVars[10] CH12 VAR DutyVars[11] CH13 VAR DutyVars[12] CH14 VAR DutyVars[13] CH15 VAR DutyVars[14] CH16 VAR DutyVars[15]
and so on... If anyone can suggest a better method I would be very interested in learning better ways to program.Code:Main: gosub CKINPUT CH1 = 100 CH2 = 0 CH3 = 0 CH4 = 0 CH5 = 0 CH6 = 0 CH7 = 0 CH8 = 0 CH9 = 0 CH10 = 0 CH11 = 0 CH12 = 0 CH13 = 0 CH14 = 0 CH15 = 0 CH16 = 0 gosub CKINPUT PAUSE T5 CH1 = 100 CH2 = 100 CH3 = 0 CH4 = 0 CH5 = 0 CH6 = 0 CH7 = 0 CH8 = 0 CH9 = 0 CH10 = 0 CH11 = 0 CH12 = 0 CH13 = 0 CH14 = 0 CH15 = 0 CH16 = 0 gosub CKINPUT PAUSE T5
Best Regards,
Kurt A. Kroh
KrohTech
“Goodbye and thanks for all the fish”
I don't see what the problem is...
You've already got CH1 an as alias to DUTYCYCLE[0]...therefore:
CH1 = 0 (or whatever)
is equal to
DUTYCYCLE[0] = 0 (or whatever)
They are functionally equivalent....
Therefore, if you had to use a loop:
for temp = 0 to 16 : dutycycle[ temp ] = 0 : next temp
would be equal to
ch1 = 0
ch2 = 0
and so on until....
ch15 = 0
ch16 = 0
Hi Skymask,
Maybe I can clarify what I am trying to do. I didn’t post my entire code because it is very long. I will attach as a text file. I am designing a sign controller AKA sign animator AKA sign speller. What I need to do is CH1 ON pause X, add CH2 on Pause X, add CH3 pause X … This is an oversimplification but you can get the idea. It will allow me to program patterns left to right, right to left, center out, outside in, fade from left to right etc.
I guess I was hoping for was some kind of nested for next loop with an array?
I probably am not phrasing it correctly as I am a beginning programmer. Most of my experience is in programming large theatrical RGB lighting clusters which is not really programming in the same use of the word. I really haven’t “written code” since high school.
I do appreciate all the help and am enjoying the journey!!!
Best Regards,
Kurt A. Kroh
KrohTech
“Goodbye and thanks for all the fish”
Where do you plan on storing all of this data? On chip eeprom, program memory, off chip serial eeprom, CF card?
I can see using a FONT table to store all of the characters, each character being a mini-array of points. Then depending on how you read out those points from that array, it may look like the character is shifting left/right/up/down, whatever.
I think you need to setup an array of data and do matrix operations on that array when dealing with the full screen.
I.E.
4 x 4 array = 16 data points, array var byte[16]
x / y = 4 / 4 = 16
point 0,0
x + (y*4) = point in array, in this case point 0, first byte in array
point 3,3
x + (y*4) = point in array, in this case point 15, last byte in array
PBP doesn't do multi-dimensional arrays but you can easily overcome that with some simple math.
Thanks Skimask
I will have to play with this to absorb it. I will give it a try this weekend.
Best Regards,
Kurt A. Kroh
KrohTech
“Goodbye and thanks for all the fish”
I don't know if I can explain the whole Arrays and Loops category. Would need a full book.Originally Posted by krohtech
But here's some more examples (untested) that might nurture some thoughts.
HTH,Code:Value VAR BYTE X VAR BYTE Y VAR BYTE MarqueeCnt VAR BYTE RepeatCnt VAR BYTE Rnd VAR WORD : Rnd = 123 MaxChannel CON 15 Main: Value = DIM GOSUB ALL2Value Pause 2000 GOSUB Marquee GOSUB Scan GOSUB DoRandom GOTO Main ;------------------------ Marquee: Value = 0 Gosub ALL2value For RepeatCnt = 1 to 50 MarqueeCnt = (MarqueeCnt + 1) // 4 For X = 0 to MaxChannel STEP 4 For Y = X to X + 3 Lookup ((Y-X) + MarqueeCnt),[0,25,75,25,0,25,75,25],Value DutyVars(Y) = Value Next Y Next X Next RepeatCnt Return ;------------------------ Scan: Value = 0 Gosub ALL2value For RepeatCnt = 1 to 20 For X = 0 to MaxChannel DutyVars(X) = MED Pause 200 DutyVars(X) = 0 Next X Next RepeatCnt Return ;------------------------ DoRandom: For RepeatCnt = 1 to 100 For X = 0 to MaxChannel RANDOM Rnd DutyVars(X) = Rnd // 100 Next X Pause 200 Next RepeatCnt Return ;------------------------ ALL2value: For X = 0 to MaxChannel DutyVars(X) = Value Next X Return
DT
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Nothing more than an index'd variable.
DutyVars(LoopCount) = 50
(not code below...)
If loopcount = 1 then the following two lines are equivalent
-DutyVars(1) = 50
-loopcount = 1 : DutyVars(loopcount) = 50
At least I think that's what you were asking about.
If that's what you were asking, the book explanation is in Chapter 4.5 of the manual...if not...whoops! My bad![]()
OK, so dutyvars is an array holding the changing value loopcount and that = 50 ? This really is Fuzzy . . .Code:label VAR size[number of elements] label = DutyVar size = Loopcount what does = 50 do exactly? Does it give you a 16 byte array all having the value of 50?
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Best Regards,
Kurt A. Kroh
KrohTech
“Goodbye and thanks for all the fish”
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Bookmarks