CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

SOLVED mystery boot

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

SOLVED mystery boot
PostPosted: Sun Sep 25, 2016 10:02 am     Reply with quote

Hello...
My question is maybe very simple ...
But I can't solve it so I'll be happy if you can help me !
So I have door switch ... it's open when door is open and closed when door is closed... when door is open there's +5V to PIC16F877A pin 7 A5
because resistor going to + 5V ...
... but when I open the door and closed it again it seems to me it boots ??

Because function led_demo() is running again...

Why opening the door make it boot and run led_demo() again ?

I've checked hardware many times and I think there's no problems ...
I've changed my PIC16F877A processor no help...
This is part of big program and everything works fine ...
I'm very confused...

Here is part of my code:
Code:

void main(){
                                 
   int1 i;
   
      /* here my LEDS
      #define peltier_led_ON      output_high(pin_C2)
      #define peltier_led_OFF     output_low(pin_C2)
      #define pump_led_ON         output_high(pin_C3)
      #define pump_led_OFF        output_low(pin_C3)                         
      #define door_led_ON         output_high(pin_A1)                     
      #define door_led_OFF        output_low(pin_A1)
      #define fan_led_ON          output_high(pin_B2)                     
      #define fan_led_OFF         output_low(pin_B2)         
      */
     
      /* here's my led demo
         
         void led_demo(void){
                           
         int8 i;
                                 
          for(i=0; i<5;++i){                                                     
           
            tank_led_ON;  delay_ms(50); tank_led_OFF;  delay_ms(50);
            fan_led_ON;   delay_ms(50); fan_led_OFF;   delay_ms(50);           
            peltier_led_ON; delay_ms(50); peltier_led_OFF; delay_ms(50);
            pump_led_ON;    delay_ms(50); pump_led_OFF;    delay_ms(50);
     }
}
     
       */
       
        //#define door_open           input(pin_A5)  --- this my door switch
     
      delay_ms(2000);             //start delay
      set_tris_a(0B11111111);      //A - port all inputs
      disable_interrupts(GLOBAL);
      delay_ms(50);
      led_demo();
      delay_ms(2000);
     
     
      // my simple test program stop here:
      here:;goto here ; 


Thank you very much if you got some idea to solve this problem Razz

All the best for you all
Razz

best regards
-arto-


Last edited by artohautala on Mon Sep 26, 2016 7:41 am; edited 1 time in total
temtronic



Joined: 01 Jul 2010
Posts: 9246
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Sun Sep 25, 2016 10:24 am     Reply with quote

points to ponder...
What's the value of the pull resistor on A5 ?
Have you disabled any other peripherals that can use A5 ?
Do you have a small cap across the switch ?


Jay
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

PostPosted: Sun Sep 25, 2016 10:36 am     Reply with quote

temtronic wrote:
points to ponder...
What's the value of the pull resistor on A5 ?
Have you disabled any other peripherals that can use A5 ?
Do you have a small cap across the switch ?

Jay


Hello Jay lot of thanks for answering me ...

pullup resistor in A5 is 2200 ohms... no other peripherals using A5
and I have 1 uF capacitor accross that door switch ...
I have tried delays and so on ... but nothing seems to help ...
Maybe I'll try to change that processor again ...
but I'm very sure it will not help because everything elsewhere in program works fine...

thank you

-arto-
rikotech8



Joined: 10 Dec 2011
Posts: 376
Location: Sofiq,Bulgariq

View user's profile Send private message

PostPosted: Sun Sep 25, 2016 10:45 am     Reply with quote

Remove the commented code if you respect the efforts and the time of the people in this forum. Present clean code, without redundant complexities.
_________________
A person who never made a mistake never tried anything new.
asmboy



Joined: 20 Nov 2007
Posts: 2128
Location: albany ny

View user's profile Send private message AIM Address

PostPosted: Sun Sep 25, 2016 12:09 pm     Reply with quote

Is there a RESISTOR in series with the LED ?

If so -what value in ohms please?

This matters .......also
Post your SCHEMATIC please
and yes fix your code so it compiles- duh !!

i think i might know what's wrong.....
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

PostPosted: Mon Sep 26, 2016 7:36 am     Reply with quote

temtronic wrote:
points to ponder...
What's the value of the pull resistor on A5 ?
Have you disabled any other peripherals that can use A5 ?
Do you have a small cap across the switch ?


Jay


I removed this capacitor and now there's no problems anymore...

<pullup resistor in A5 is 2200 ohms... no other peripherals using A5
and I have 1 uF capacitor across that door switch ... >

maybe when it discharged via door switch contacts the current pulse was too big...
My purpose was backward to avoid any voltage spikes ...

thanks for your help ...
best regards
-arto-
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

PostPosted: Mon Sep 26, 2016 7:37 am     Reply with quote

rikotech8 wrote:
Remove the commented code if you respect the efforts and the time of the people in this forum. Present clean code, without redundant complexities.


Sorry I really respect this forum... thank for your answer I found the reason
I removed this capacitor and now there's no problems anymore...

<pullup resistor in A5 is 2200 ohms... no other peripherals using A5
and I have 1 uF capacitor accross that door switch ... >

maybe when it discharced via door switch contacts the current pulse was too big...
My purpose was backward to avoid any voltage spikes ...

thanks for your help ...
best regards
-arto-
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

PostPosted: Mon Sep 26, 2016 7:40 am     Reply with quote

asmboy wrote:
Is there a RESISTOR in series with the LED ?

If so -what value in ohms please?

This matters .......also
Post your SCHEMATIC please
and yes fix your code so it compiles- duh !!

i think i might know what's wrong.....


I removed this capacitor and now there's no problems anymore...

<pullup resistor in A5 is 2200 ohms... no other peripherals using A5
and I have 1 uF capacitor accross that door switch ... >

maybe when it discharced via door switch contacts the current pulse was too big...
My purpose was backward to avoid any voltage spikes ...

thanks for your help ...
best regards
-arto-
Ttelmah



Joined: 11 Mar 2010
Posts: 19552

View user's profile Send private message

PostPosted: Mon Sep 26, 2016 7:58 am     Reply with quote

1uF across a switch is a good way of damaging something. A typical 'snubber' circuit, has 0.1uF in series with perhaps 10 to 50R to limit the current. Asking a switch to discharge a 1uF capacitor, with nothing to limit the current, could result in many amps of current flowing. Quite possibly destroy the switch long term....

<http://electronics.stackexchange.com/questions/225903/how-to-determine-a-capacitor-value-across-a-switch-carrying-dc>
artohautala



Joined: 17 Nov 2011
Posts: 187

View user's profile Send private message Send e-mail

PostPosted: Mon Sep 26, 2016 9:58 am     Reply with quote

Ttelmah wrote:
1uF across a switch is a good way of damaging something. A typical 'snubber' circuit, has 0.1uF in series with perhaps 10 to 50R to limit the current. Asking a switch to discharge a 1uF capacitor, with nothing to limit the current, could result in many amps of current flowing. Quite possibly destroy the switch long term....

<http://electronics.stackexchange.com/questions/225903/how-to-determine-a-capacitor-value-across-a-switch-carrying-dc>


Hello and lot of thanks for your answer Ttelmah ! Smile

Ttelmah wrote:
A typical 'snubber' circuit, has 0.1uF in series with perhaps 10 to 50R to limit the current. Asking a switch to discharge a 1uF capacitor, with nothing to limit the current, could result in many amps of current flowing. Quite possibly destroy the switch long term....

This is really true I experienced it in practice ... I understand now that it's good advice.

Yes I did not think about that carefully enough ... it's very embarrassed !

So I find my door switch "welded" contacts together but after many open close periods with magnet it started to work again ... (lucky me)

So I replace capacitor with suitable delay and now it seems to work OK !

All the best and have fun'


-arto-
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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