Discussion in "Project Addition or Changes" started by    arejar21    Mar 27, 2009.
Fri Mar 27 2009, 01:33 am
#1
hi..
i'm currently doing my final project by using a TX-RX module..

i want to do a modification for my programming part but i don't know where should i put it in that coding.

this is my coding for the project:

/*
 * Project name:
     Anti-Napping System
*/Description    
     MCU:             PIC16F876A
     Oscillator:      HS, 04.0000 MHz

*/
unsigned short cnt;
void main(){
  char oldstate = 0;
  TRISB = 0xff;
  TRISC = 0x00;
  trisa= 0x00;
  portc=0;
  cnt=0;

do {
  if (Button(&PORTB, 1, 1, 1))
    oldstate = 1;


  if (oldstate && Button(&PORTB, 1, 1, 0)) {
    portc = ~PORTC;
    cnt++;
    oldstate = 0;
    delay_ms(6000);     // motor slow on for 6 sec
    portc=0;           // 1st motor is turn on
    

  }

  if (cnt==1){
  delay_ms(2000);   //delay before turn on the 2nd motor
  porta=0xff;
  delay_ms(6000);   //6sec delay
  porta=0;
  cnt=0;

  }
  
} while(1);         // endless loop


}


this program is working when the pic is given an 0 input to the port a. this is happens because the receiver give 0 signal (meanings 0V voltage)
when port a is 0, 1st motor will turn on.
and after a few delays, if the receiver still give 0 input to the PIC, the second motor will turn on for 6 sec. then, both of the motor will stop running. this the situation for my program.

now, i'm afraid i need to do a modification on that program. supposedly, the 1st motor should turn off if the receiver give 1 input to the PIC. but, when i'm testing the hardware, the motor keep continuing turn on even though the receiver give 1 input to the PIC. it shouldn't turn on when the PIC receiver 1 input from the receiver.

i want the 1st motor turn off when the PIC receive 1( digital data =1) input from the receiver,and also for the 2nd motor. it will turn off if the pic receive 1 input. But, i don't know where and what should i put in the program for that situation.Can someone help me??


[ Edited Fri Mar 27 2009, 10:37 pm ]
Fri Mar 27 2009, 11:03 pm
#2
i am not able to understand your problem..

try this..
if (cnt==1) //change this
//to
if(cnt==2)


hope your problem get solved. and you said signal is applied to port A whereas your code does not check for signal on porta, rather you are checking portb. please see if your explanation is correct.

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

Clydehet
Wed May 01 2024, 06:44 pm
Davidoried
Wed May 01 2024, 06:11 pm
KevinTab
Sun Apr 28 2024, 05:35 am
Tumergix
Sun Apr 28 2024, 12:59 am
StevenDrulk
Sat Apr 27 2024, 08:47 pm
StephenHauct
Sat Apr 27 2024, 09:38 am
Adamsaf
Sat Apr 27 2024, 07:12 am
Robertphype
Sat Apr 27 2024, 12:23 am