PWM stops working...[solved]

For questions and comments on programming in general. And for any items that don't fit into the forums below.

Moderators: Benj, Mods

Post Reply
Lord Grezington
Flowcode V4 User
Posts: 288
Joined: Wed Nov 02, 2011 11:15 pm
Has thanked: 29 times
Been thanked: 30 times
Contact:

PWM stops working...[solved]

Post by Lord Grezington »

Hello all

I had a program I wrote years ago that I needed to update. It was written in FC5 and written on a PIC16F1847

In this update, I needed to add some interrupts. I needed to count pulses so I added a timer interrupt on TMR0 and a IOC on PortB. I have disabled watchdog timers and the PWM module is on TMR2 (However it makes no difference if i switch to TMR4). I am running on the internal clock at 32Mhz.

The program works well, however after a time period (this seems to change almost randomly but can be anywhere between 10 minutes and over an hour) the PWM just stops, I do not disable it and I do not tell it to go at a 0% duty cycle. And this only happens when I am counting pulses with the interrupts.

I have monitored all my variables with an SPI output with hardware to double check none of them are overflowing. The variable set for the PWM does not change from what it is suppose to be.

I know the TMR's disable when the PIC goes into sleep, but I do not tell it to sleep and also I would have through that the IOC on port B would probably wake it up.

I have even replicated the program in FCV6 (I don't have 7 yet) and I get the same problem, below are my config settings.
16F1847 Config.jpg
16F1847 Config.jpg (123.01 KiB) Viewed 5150 times
Thanks

medelec35
Matrix Staff
Posts: 9520
Joined: Sat May 05, 2007 2:27 pm
Location: Northamptonshire, UK
Has thanked: 2585 times
Been thanked: 3815 times
Contact:

Re: PWM stops working...

Post by medelec35 »

Can you compile to hex and post the Flowchart Name.msg.txt
Just want to look at what is states for BoostC.
Martin

Lord Grezington
Flowcode V4 User
Posts: 288
Joined: Wed Nov 02, 2011 11:15 pm
Has thanked: 29 times
Been thanked: 30 times
Contact:

Re: PWM stops working...

Post by Lord Grezington »

Hi Martin

The programs are slightly different, but both give the same error. Here is the V5 compiler messages

"
File name: ***\E20 - V4.5 GOV.c
Title:
Description:
Generated by: Flowcode v5.5.2.1
Date: Monday, January 29, 2018 07:39:27
Licence: Professional
Registered to:
Licence key: UNMMBG
http://www.matrixmultimedia.com
Launching the compiler...
C:\Program Files (x86)\Flowcode\v5\Tools\boostc\boostc_pic16_flowcode.exe -v -t PIC16F1847 "E20 - V4.5 GOV.c"
BoostC Optimizing C Compiler Version 7.04 (for PIC16 architecture)
http://www.sourceboost.com
Copyright(C) 2004-2011 Pavel Baranov
Copyright(C) 2004-2011 David Hobday

Licensed to FlowCode User under Single user Pro License for 1 node(s)
Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited


E20 - V4.5 GOV.c
Starting preprocessor: C:\PROGRA~2\Flowcode\v5\Tools\boostc\pp.exe "E20 - V4.5 GOV.c" -i C:\PROGRA~2\Flowcode\v5\Tools\boostc\include -d _PIC16F1847 -la -c2 -o "E20 - V4.5 GOV.pp" -v -d _BOOSTC -d _PIC16 -d _PIC16x -d _CHAR_INDEX


..........................................................................................................

E20 - V4.5 GOV.c success

success
Return code = 0
Launching the linker/assembler...
C:\Program Files (x86)\Flowcode\v5\Tools\boostc\boostlink_pic.exe -ld "C:\Program Files (x86)\Flowcode\v5\Tools\BoostC\lib" libc.pic16.lib rand.pic16.lib float.pic16.lib "E20 - V4.5 GOV.obj" -t PIC16F1847 -d "***" -p "E20 - V4.5 GOV"
BoostLink Optimizing Linker Version 7.03
http://www.sourceboost.com
Copyright(C) 2004-2011 Pavel Baranov
Copyright(C) 2004-2011 David Hobday


Caution: argument of 'delay_us' calls must have a value of 1 or more
Warning unreferenced functions removed:
FC_CAL_Port_In__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_In_DDR__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out_DDR__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
Wdt_Delay_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
Wdt_Delay_Ms in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_US in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_MS in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_MS in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_GETCHAR in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_GETLENGTH in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_MIDSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_LEFTSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_RIGHTSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOLOWER in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOUPPER in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_COMPARE in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_FLOAT_TO_STRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_NUMBER_TO_HEX in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_INT in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_FLOAT in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRREV in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRMOV in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_SHEAD in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_SCOPY in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
isinf in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_round in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_floor in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_ceil in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
FCM_CONFIG_0 in: ***\E20 - V4.5 GOV.c
FCM_CONFIG_1 in: ***\E20 - V4.5 GOV.c
FCM_CONFIG_3 in: ***\E20 - V4.5 GOV.c
FCM_ERROR in: ***\E20 - V4.5 GOV.c
FCM_Change_Dir in: ***\E20 - V4.5 GOV.c
FC_CAL_PWM_Disable_Channel_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_PWM.c
FC_CAL_PWM_Set_Duty_10Bit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_PWM.c
FCD_PWM0_Disable in: ***\E20 - V4.5 GOV.c
FCD_PWM0_ChangePeriod in: ***\E20 - V4.5 GOV.c
FCD_PWM0_SetDutyCycle10bit in: ***\E20 - V4.5 GOV.c
FC_CAL_SPI_Master_Uninit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FCD_SPI_Legacy0_SPI_Uninit in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Send_String in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Get_Char in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Get_String in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_DAC_Send_Char in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_NVM_Send_Char in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_NVM_Get_Char in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_FramOutput in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_EnableFRAM in: ***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_DisableFRAM in: ***\E20 - V4.5 GOV.c
FCD_SWITCH0_WaitUntilHigh in: ***\E20 - V4.5 GOV.c
FCD_SWITCH0_WaitUntilLow in: ***\E20 - V4.5 GOV.c
FCD_ADC0_SampleADC in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsInt in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsVoltage in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsString in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Configure_Channel in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Sample_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Sample_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Average_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Average_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Disable_Channel in: ***\E20 - V4.5 GOV.c
FCD_ADC1_SampleADC in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsInt in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsVoltage in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsString in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Configure_Channel in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Sample_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Sample_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Average_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Average_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Disable_Channel in: ***\E20 - V4.5 GOV.c
FCD_SWITCH1_WaitUntilHigh in: ***\E20 - V4.5 GOV.c
FCD_SWITCH1_WaitUntilLow in: ***\E20 - V4.5 GOV.c
FCD_ADC2_SampleADC in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsInt in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsVoltage in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsString in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Configure_Channel in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Sample_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Sample_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Average_Channel_Byte in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Average_Channel_Int in: ***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Disable_Channel in: ***\E20 - V4.5 GOV.c
FCD_SWITCH2_WaitUntilHigh in: ***\E20 - V4.5 GOV.c
FCD_SWITCH2_WaitUntilLow in: ***\E20 - V4.5 GOV.c
FC_CAL_SPI_Set_Prescaler_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_Init_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_Uninit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_SetTxData_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_GetRxData_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c

Building CASM file
Serious Warning: Possible sw stack corruption, function 'FCD_ADC2_ReadAsByte' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Memory Usage Report
===================
RAM available:1024 bytes, used:120 bytes (11.8%), free:904 bytes (88.2%),
Heap size:320 bytes, Heap max single alloc:79 bytes
ROM available:8192 words, used:3630 words (44.4%), free:4562 words (55.6%)



success
Return code = 0

FINISHED

"

Here is the V6

"
Target folder: C:\***
Source name: C:\***\E20 - V5.0 GOV.fcfx
Title:
Description:
Device: PIC.16F.16F1847
Generated by: Flowcode v6.1.4.0
Date: Monday, January 29, 2018 07:22:38
Users: 1
Registered to: B371CE28-6C65-4883-B315-8EED3F1511DE
Licence key: WTQ5D0
http://www.matrixtsl.com
Launching the compiler...
C:\Program Files (x86)\Flowcode 6\compilers\pic\boostc\boostc_16F.exe -v -t PIC16F1847 "E20 - V5.0 GOV.c"
Launching BoostC...
BoostC Optimizing C Compiler Version 7.20 (for PIC16 architecture)
http://www.sourceboost.com
Copyright(C) 2004-2013 Pavel Baranov
Copyright(C) 2004-2013 David Hobday

Licensed to FlowCode User under Single user Pro License for 1 node(s)
Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited


E20 - V5.0 GOV.c
Starting preprocessor: "C:\Program Files (x86)\Flowcode 6\compilers\pic\boostc\pp.exe" "E20 - V5.0 GOV.c" -i "C:\Program Files (x86)\Flowcode 6\compilers\pic\boostc\include" -d _PIC16F1847 -la -c2 -o "E20 - V5.0 GOV.pp" -v -d _BOOSTC -d _PIC16 -d _PIC16x -d _CHAR_INDEX

......................................................................................
E20 - V5.0 GOV.c success

success
Completed BoostC compilation, return = 0

Launching the linker/assembler...
C:\Program Files (x86)\Flowcode 6\compilers\pic\boostc\boostlink_picmicro.exe -ld "C:\Program Files (x86)\Flowcode 6\compilers\pic\boostc\lib" libc_16F.lib rand_16F.lib float_16F.lib "E20 - V5.0 GOV.obj" -t PIC16F1847 -d "C:***" -p "E20 - V5.0 GOV"
BoostLink Optimizing Linker Version 7.20
http://www.sourceboost.com
Copyright(C) 2004-2013 Pavel Baranov
Copyright(C) 2004-2013 David Hobday


Caution: argument of 'delay_us' calls must have a value of 1 or more
Warning unreferenced functions removed:
FC_CAL_Port_In__x in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out__x in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out_DDR__x in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_IO.c
Wdt_Delay_S in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
Wdt_Delay_Ms in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_US in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_MS in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_MS in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_S in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_S in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Delay.c
FCI_GETCHAR in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_GETLENGTH in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_MIDSTRING in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_LEFTSTRING in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_RIGHTSTRING in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRING in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRS16 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRS32 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRU16 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRU32 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOLOWER in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_TOUPPER in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_COMPARE in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_FLOAT_TO_STRING in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_NUMBER_TO_HEX in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_INT in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_FLOAT in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_STRREV in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_STRMOV in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_SHEAD in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
FCI_SCOPY in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_String.c
isinf in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
pow in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
flt_round in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
flt_floor in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
flt_ceil in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
flt_atan in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
cos in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
sin in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
tan in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_Float.c
FC_CAL_SPI_Slave_Uninit_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FCD_01532_cal_spi__Prv_TextConsole in: C:\***\E20 - V5.0 GOV.c
FC_CAL_SPI_Slave_Init_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Master_Uninit_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_SetPrescaler_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FCD_06c42_SPI_Master2__SendString in: C:\***\E20 - V5.0 GOV.c
FCD_06c42_SPI_Master2__GetString in: C:\***\E20 - V5.0 GOV.c
FCD_06c42_SPI_Master2__GetChar in: C:\***\E20 - V5.0 GOV.c
FCD_06c42_SPI_Master2__UnInitialise in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawSampleInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__GetString in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__GetAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__GetAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__GetVoltage in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawEnable in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawSampleByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__GetInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f43_adc_base__RawDisable in: C:\***\E20 - V5.0 GOV.c
FCD_05263_switch_base__WaitUntilHigh in: C:\***\E20 - V5.0 GOV.c
FCD_05263_switch_base__WaitUntilLow in: C:\***\E20 - V5.0 GOV.c
FCD_05262_switch_base__WaitUntilHigh in: C:\***\E20 - V5.0 GOV.c
FCD_05262_switch_base__WaitUntilLow in: C:\***\E20 - V5.0 GOV.c
FCD_05261_switch_base__ReadState in: C:\***\E20 - V5.0 GOV.c
FCD_05261_switch_base__WaitUntilLow in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawSampleInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__GetString in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__GetAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__GetAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__GetVoltage in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawEnable in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawSampleByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__GetInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f42_adc_base__RawDisable in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawSampleInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__GetString in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__GetAverageByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__GetAverageInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__GetVoltage in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawEnable in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawSampleByte in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__GetInt in: C:\***\E20 - V5.0 GOV.c
FCD_08f41_adc_base__RawDisable in: C:\***\E20 - V5.0 GOV.c
FCD_0ba71_PWM_Digital__ReadASCIILUT in: C:\***\E20 - V5.0 GOV.c
FC_CAL_PWM_Disable_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_PWM.c
FC_CAL_PWM_SetDuty10Bit_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_PWM.c
FCD_0df41_PWM1__ChangePeriod in: C:\***\E20 - V5.0 GOV.c
FCD_0df41_PWM1__Disable in: C:\***\E20 - V5.0 GOV.c
FCD_0df41_PWM1__SetDutyCycle10Bit in: C:\***\E20 - V5.0 GOV.c
FC_CAL_SPI_Slave_Uninit_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FCD_01531_cal_spi__Prv_TextConsole in: C:\***\E20 - V5.0 GOV.c
FC_CAL_SPI_Slave_Init_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Master_Uninit_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_SetPrescaler_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FCD_06c41_SPI_Master1__SendString in: C:\***\E20 - V5.0 GOV.c
FCD_06c41_SPI_Master1__GetString in: C:\***\E20 - V5.0 GOV.c
FCD_06c41_SPI_Master1__GetChar in: C:\***\E20 - V5.0 GOV.c
FCD_06c41_SPI_Master1__UnInitialise in: C:\***\E20 - V5.0 GOV.c
FC_CAL_SPI_Slave_SetTxData_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_GetRxData_1 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_SetTxData_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_GetRxData_2 in: C:\Program Files (x86)\Flowcode 6\CAL\PIC\PIC_CAL_SPI.c

Building CASM file
Serious Warning: Possible sw stack corruption, function 'FCD_0df41_PWM1__SetDutyCycle' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Disable' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Enable' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Sample' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Memory Usage Report
===================
RAM available:1024 bytes, used:131 bytes (12.8%), free:893 bytes (87.2%),
Heap size:320 bytes, Heap max single alloc:79 bytes
ROM available:8192 words, used:4297 words (52.5%), free:3895 words (47.5%)



success
.

FINISHED
"

If you need anything else let me know

Thanks

medelec35
Matrix Staff
Posts: 9520
Joined: Sat May 05, 2007 2:27 pm
Location: Northamptonshire, UK
Has thanked: 2585 times
Been thanked: 3815 times
Contact:

Re: PWM stops working...

Post by medelec35 »

It's just what I thought.
There warnings issued:

Code: Select all

Building CASM file
Serious Warning: Possible sw stack corruption, function 'FCD_ADC2_ReadAsByte' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Memory Usage Report
&

Code: Select all

Building CASM file
Serious Warning: Possible sw stack corruption, function 'FCD_0df41_PWM1__SetDutyCycle' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Disable' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Enable' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
Serious Warning: Possible sw stack corruption, function 'FC_CAL_ADC_Sample' called by more than one asynchronous thread (main/Task, interrupt, interrupt low)
My guess is you have the same components or delays within an interrupt as you do within main or a call macro.

These warnings can't be ignored.
Are you able to move the offending components out from interrupt macros?
Martin

Lord Grezington
Flowcode V4 User
Posts: 288
Joined: Wed Nov 02, 2011 11:15 pm
Has thanked: 29 times
Been thanked: 30 times
Contact:

Re: PWM stops working...

Post by Lord Grezington »

Thanks Martin

I have got rid of all the serious warnings for the V5 (as this one has been tested most). I cant find that caution though, where it says

"Caution: argument of 'delay_us' calls must have a value of 1 or more" .

I will upload it to the hardware and run the test.



"
File name: C:\Users\***\E20 - V4.5 GOV.c
Title:
Description:
Generated by: Flowcode v5.5.2.1
Date: Monday, January 29, 2018 09:11:30
Licence: Professional
Registered to:
Licence key: UNMMBG
http://www.matrixmultimedia.com
Launching the compiler...
C:\Program Files (x86)\Flowcode\v5\Tools\boostc\boostc_pic16_flowcode.exe -v -t PIC16F1847 "E20 - V4.5 GOV.c"
BoostC Optimizing C Compiler Version 7.04 (for PIC16 architecture)
http://www.sourceboost.com
Copyright(C) 2004-2011 Pavel Baranov
Copyright(C) 2004-2011 David Hobday

Licensed to FlowCode User under Single user Pro License for 1 node(s)
Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited


E20 - V4.5 GOV.c
Starting preprocessor: C:\PROGRA~2\Flowcode\v5\Tools\boostc\pp.exe "E20 - V4.5 GOV.c" -i C:\PROGRA~2\Flowcode\v5\Tools\boostc\include -d _PIC16F1847 -la -c2 -o "E20 - V4.5 GOV.pp" -v -d _BOOSTC -d _PIC16 -d _PIC16x -d _CHAR_INDEX


.....................................................................................................

E20 - V4.5 GOV.c success

success
Return code = 0
Launching the linker/assembler...
C:\Program Files (x86)\Flowcode\v5\Tools\boostc\boostlink_pic.exe -ld "C:\Program Files (x86)\Flowcode\v5\Tools\BoostC\lib" libc.pic16.lib rand.pic16.lib float.pic16.lib "E20 - V4.5 GOV.obj" -t PIC16F1847 -d "C:\Users\***" -p "E20 - V4.5 GOV"
BoostLink Optimizing Linker Version 7.03
http://www.sourceboost.com
Copyright(C) 2004-2011 Pavel Baranov
Copyright(C) 2004-2011 David Hobday


Caution: argument of 'delay_us' calls must have a value of 1 or more
Warning unreferenced functions removed:
FC_CAL_Port_In__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_In_DDR__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
FC_CAL_Port_Out_DDR__x in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_IO.c
Wdt_Delay_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
Wdt_Delay_Ms in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_US in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_MS in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_MS in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINT_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_DELAYINTWDT_S in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Delay.c
FCI_GETCHAR in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_GETLENGTH in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_MIDSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_LEFTSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_RIGHTSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOSTRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOLOWER in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_TOUPPER in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_COMPARE in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_FLOAT_TO_STRING in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_NUMBER_TO_HEX in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_INT in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRING_TO_FLOAT in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRREV in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_STRMOV in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_SHEAD in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
FCI_SCOPY in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_String.c
isinf in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_round in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_floor in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
flt_ceil in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_Float.c
FCM_CONFIG_0 in: C:\Users\***\E20 - V4.5 GOV.c
FCM_CONFIG_1 in: C:\Users\***\E20 - V4.5 GOV.c
FCM_CONFIG_3 in: C:\Users\***\E20 - V4.5 GOV.c
FCM_ERROR in: C:\Users\***\E20 - V4.5 GOV.c
FCM_Change_Dir in: C:\Users\***\E20 - V4.5 GOV.c
FC_CAL_PWM_Disable_Channel_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_PWM.c
FC_CAL_PWM_Set_Duty_10Bit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_PWM.c
FCD_PWM0_Disable in: C:\Users\***\E20 - V4.5 GOV.c
FCD_PWM0_ChangePeriod in: C:\Users\***\E20 - V4.5 GOV.c
FCD_PWM0_SetDutyCycle10bit in: C:\Users\***\E20 - V4.5 GOV.c
FC_CAL_SPI_Master_Uninit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FCD_SPI_Legacy0_SPI_Uninit in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Send_String in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Get_Char in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_SPI_Get_String in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_DAC_Send_Char in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_NVM_Send_Char in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_NVM_Get_Char in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_FramOutput in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_EnableFRAM in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SPI_Legacy0_DisableFRAM in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH0_WaitUntilHigh in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH0_WaitUntilLow in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_SampleADC in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsInt in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsVoltage in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ReadAsString in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Configure_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Sample_Channel_Byte in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Sample_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Average_Channel_Byte in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Average_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC0_ADC_RAW_Disable_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_SampleADC in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsInt in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsVoltage in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ReadAsString in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Configure_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Sample_Channel_Byte in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Sample_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Average_Channel_Byte in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Average_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC1_ADC_RAW_Disable_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH1_WaitUntilHigh in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH1_WaitUntilLow in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_SampleADC in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsInt in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsVoltage in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ReadAsString in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Configure_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Sample_Channel_Byte in: C:\Users***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Sample_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Average_Channel_Byte in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Average_Channel_Int in: C:\Users\***\E20 - V4.5 GOV.c
FCD_ADC2_ADC_RAW_Disable_Channel in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH2_WaitUntilHigh in: C:\Users\***\E20 - V4.5 GOV.c
FCD_SWITCH2_WaitUntilLow in: C:\Users\***\E20 - V4.5 GOV.c
FC_CAL_SPI_Set_Prescaler_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_Init_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_Uninit_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_SetTxData_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c
FC_CAL_SPI_Slave_GetRxData_1 in: C:\Program Files (x86)\Flowcode\v5\CAL\PIC\PIC_CAL_SPI.c

Building CASM file
Memory Usage Report
===================
RAM available:1024 bytes, used:114 bytes (11.2%), free:910 bytes (88.8%),
Heap size:320 bytes, Heap max single alloc:79 bytes
ROM available:8192 words, used:3662 words (44.8%), free:4530 words (55.2%)



success
Return code = 0

FINISHED

"

Graham

medelec35
Matrix Staff
Posts: 9520
Joined: Sat May 05, 2007 2:27 pm
Location: Northamptonshire, UK
Has thanked: 2585 times
Been thanked: 3815 times
Contact:

Re: PWM stops working...

Post by medelec35 »

Hi Graham,
You're welcome.
Have you tested to see if it still freezes?
Lord Grezington wrote:Caution: argument of 'delay_us' calls must have a value of 1 or more
Benj answered that one here

Martin
Martin

Lord Grezington
Flowcode V4 User
Posts: 288
Joined: Wed Nov 02, 2011 11:15 pm
Has thanked: 29 times
Been thanked: 30 times
Contact:

Re: PWM stops working...

Post by Lord Grezington »

Hi Martin

Its been running for 1h 12mins now, so far so good....

Thanks

medelec35
Matrix Staff
Posts: 9520
Joined: Sat May 05, 2007 2:27 pm
Location: Northamptonshire, UK
Has thanked: 2585 times
Been thanked: 3815 times
Contact:

Re: PWM stops working...

Post by medelec35 »

Lord Grezington wrote:Its been running for 1h 12mins now, so far so good....
That is promising news.
Fingers crossed.
Martin

Lord Grezington
Flowcode V4 User
Posts: 288
Joined: Wed Nov 02, 2011 11:15 pm
Has thanked: 29 times
Been thanked: 30 times
Contact:

Re: PWM stops working...

Post by Lord Grezington »

Hi Martin

This issue has now been classed as solved....

Thanks for you help...

Post Reply