|
|
View previous topic :: View next topic |
Author |
Message |
Eisenlohr
Joined: 22 Feb 2005 Posts: 1
|
Problems with Power_PWM at PIC18F2331 |
Posted: Tue Feb 22, 2005 7:20 pm |
|
|
I have a compiler Problem by application with 3 of the Power_PWM outputs.
The code is as following:
//declatation and setup
void setup_pwm()
{
setup_power_pwm_pins (pwm_odd_on, pwm_odd_on, pwm_odd_on, pwm_odd_on);
setup_power_pwm (pwm_clock_div_4 | pwm_free_run, 1, 10000, 1023, 0, 1, 0);
return ;
}
...
void main () //begins with main program
{
...
setup_pwm(); //initializes the pwm
init_timer_1 ();
...
while (true) //main loop
{
...
{ //critical part !
set_power_pwm0_duty (0); //setting values for the duty
set_power_pwm2_duty (1024); //4095 is 100% duty
set_power_pwm4_duty (2048); //0 is 0% duty
} //critical part !
...
} //end while
} //end main
The 3 PWM's are functions good by having this code.
But when some code is before the critical part or the both brackets "{" "}" are not in this way, the outputs of the power_pwm's have no function. For example like this:
...
if (true) //must always on
{ //critical part !
set_power_pwm0_duty (0); //setting values for the duty
set_power_pwm2_duty (1024);
set_power_pwm4_duty (2048);
} //critical part !
...
I think the compiled code in the ROM is shiftet in an other position or area an the power_pwm hardware isn't able to functions as well. Then the code wouldn't allocatable in various ROM-spaces. All ideas what I have had are done, but no success. The mistake isn't systmatical so my idea is close to think it must be a genaeal compiler mistake with the POWER_PWM.
Please help me according to my problem.
Is it possible to get some code examples or example files about power_pwm ?
My conditions are: CCS Compiler Rev. 3.219 (actual), MPLAB 6.60, Emulator ICE2000, Xtal=24MHz HS, 5V=Vss.
Thank You
Joerg, Germany |
|
|
bluetooth
Joined: 08 Jan 2005 Posts: 74
|
|
Posted: Wed Feb 23, 2005 6:12 am |
|
|
Joerg:
You didn't really supply enough info to give you a specific answer, so I suggest you get out the data sheet. Study the Power Control Module registers to see if they're being set up properly (particulary, what's different from when they work before you put "some code" before the critical function).
Registers of particular interest:
PTCON0
PTCON1
PTPERL
PTPERH
PWMCON0
PWMCON1
Also, check to see if the FLT inputs are enabled and driven - this will shut down your outputs fast! If this is the case, either fix the input problem or disable the FLT input(s) (bad idea) .
-------------- Soap box:
In terms of using the CCS built-in functions: the words of an old politician come to mind: "Trust, but verify". If you're going to use them, it's a REALLY good idea to check the registers to make sure they've got the right number in them at the right times. This is especially true for newer parts. Many users here set up all the registers themselves to avoid this (potential) additional layer of system debug. Personally, I use only the simplest of those functions (#USE RS-232, spi_write/read, a/d functions, etc.) for just that reason.
Good luck.... |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|