Hi, Malc
When your 1 Channel PWM will work ...
Have a look there, then :
http://www.pbpgroup.com/modules/wfse...p?articleid=12
for implementing the 4 Channels ...
Alain
Hi, Malc
When your 1 Channel PWM will work ...
Have a look there, then :
http://www.pbpgroup.com/modules/wfse...p?articleid=12
for implementing the 4 Channels ...
Alain
Last edited by Acetronics2; - 11th February 2007 at 12:17.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Thanks for the link, and really interesting site.
I'm going to browse the forum to sort out my basic config problems ( Its often months between projects and I forget how to do the simple stuff ) That was the one thing I liked about JAL, you simply added something like #include 16F628a.inc at the start of the code and that took care of all the config settings.
Thanks guys for your input - much head scratching to do !
Ok I now realise where I went wrong.. since I last used PBP I re-built the PC and thus the changes made to the 16F628a inc file had been lost.. I followed Steves advice and now have a working device..sorta !
Just need to tweek the scale so that I get a full duty cycle from 0 to 255
Ok I got nowhere with that POT command, so jump in the deep end and try using ADC.
I've used a 12F675 with the following code. As I've never used ADC before and still find datasheets confusing I just cut and pasted examples from the PBP manual for ADC.
To my suprise, the code compiled and works, well sort off !Code:@ __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BODEN_ON TRISIO.2 = 0 'Set GPIO.2 to output. ANSEL.2 = 0 'Set GPIO.2 to digital GPIO.0 = 1 'gpio.0 set to input VRCON = 0 ' Voltage reference disabled OPTION_REG.7 = 0 DEFINE ADC_BITS 8 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds led var GPIO.2 i var byte D var byte main: ADCIN 0, D Pwm GPIO.2,D,1 goto main
using a 10K pot connected between +5v and GND with the wiper connected to GPIO 0, my DVM reads between +0.14v and +5 on GPIO 2 when the pot is turned through its range - connecting an LED to GPIO 2 confirms that something is working as its brightness can be controlled via the POT... so far so good
I then tested the FET by connecting a 10K pot between gnd and +5v with the wiper going to the gate, the track between +12v and FET and the FET to GND. Adjusting the pot produced some degree of control over a loco... so I moved the link from the pots wiper and connected it to GPIO 2. However the DVM reads the same vdd of the 12v rail regardless of the setting of the POT.
I can only assume that its something to do with the PWM output from the PIC that is turning on the FET continiously ?? anyone have any suggestions ?? Can a PIC have DAC so I could convert the resulting digital value to a voltage that would be used to drive the FET (or whatever output stage I use).
I want to stick with a PIC for the control as it would be easier to use simple for next loops / or counters for programmable stops, acceleration, etc
Comments welcome as always
i think it's more a matter how this PWM function is made...i'll do some test here first. How many different channel you need?
Which other PIC you have on hand?
Last edited by mister_e; - 11th February 2007 at 17:41.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
LOL - Steve, I sence you see I'm strugling and a bit out of my depth![]()
I would like to use 4 channels in total so I can control 4 trains all independantly, but I'm not bothered if I need to use two chips.
I have at my disposal the following PICs:
16F84A
16F873A
16F628A
16F676
16F688
16F877A
16F684
18F2550
12F675
18F4550
Thanks
Hi, Malc
Your scoping confirms what I thought and read ...
The pot function charges the capacitor, and then drags little amounts of current ( in coulombs ...), verifies if the pin low thresold is reached, takes another quantity of current, verifies, and so on ...
That's why you get such garbage !!!
Now, the result is a count of the little quantities ... and that explains why you must use the indicated values and not others, even the RC value remains constant.
Alain
PS: and what about a scale value of ... 64 ???
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Bookmarks