Pages: [1]   Go Down
Print
Author Topic: ช่วยดูโปรแกรมให้หน่อยครับ  (Read 7302 times)
0 Members and 2 Guests are viewing this topic.
jod
มาใหม่
*
Offline Offline

Posts: 2


Email
« on: February 04, 2009, 12:44:46 AM »

ผมใช้ borad  ตามนี้ครับ  http://www.ett.co.th/product/06A01.html
อธิบายโปรแกรม
 ** คือ จาก void RecieveLamp(void)  ผมต้องการให้ได้
     
      if(RCREG=='S')
      {
         SB6=0;
         SB7=1;
      }
      if(RCREG=='R')
      {
         SB6=1;
         SB7=0;
      }

แต่ปรากฏว่า SB6 SB7 เป็น 1 ทั้งอันเลย แล้วพอ SB3
ดูให้หน่อยว่ามันผิดตรงไหน

#include"pic.h"
static bit SA1       @((unsigned)&PORTA*8+1);
static bit SA2       @((unsigned)&PORTA*8+2);
static bit SA3       @((unsigned)&PORTA*8+3);
static bit SA4       @((unsigned)&PORTA*8+4);
static bit SA5       @((unsigned)&PORTA*8+5);
static bit SB1       @((unsigned)&PORTB*8+1);
static bit SB2      @((unsigned)&PORTB*8+2);
static bit SB3      @((unsigned)&PORTB*8+3);
static bit SB4      @((unsigned)&PORTB*8+4);
static bit SB5      @((unsigned)&PORTB*8+5);
static bit SB6      @((unsigned)&PORTB*8+6);
static bit SB7      @((unsigned)&PORTB*8+7);
static bit SC1       @((unsigned)&PORTC*8+1);
static bit SC2      @((unsigned)&PORTC*8+2);
static bit SC3      @((unsigned)&PORTC*8+3);
static bit SC4       @((unsigned)&PORTC*8+4);
static bit SC5       @((unsigned)&PORTC*8+5);
static bit SD1       @((unsigned)&PORTD*8+1);
static bit SD2       @((unsigned)&PORTD*8+2);
static bit SD3       @((unsigned)&PORTD*8+3);
static bit SD4       @((unsigned)&PORTD*8+4);
static bit SD5       @((unsigned)&PORTD*8+5);
static bit SD6       @((unsigned)&PORTD*8+6);
static bit SD7       @((unsigned)&PORTD*8+7);


void delay(int time)
{
   while(time--);
}
void InitInput(void)
{
   TRISA=0xFF; // Port A all input
   TRISB=0x3F; // bit ที่ 6,7เป็น output
   TRISC=0xFF; // Port A all input
   TRISD=0xFF; // Port D all input
   ADCON1=0x06;
}
//
void InitRS232(void)   // speed 9600 data 8 bit 1 stop bit
{
   TRISC6=0;
   TRISC7=1;
   SPBRG=25;
   SYNC=0;   // Asynchronous mode
   BRGH=1;   // high speed
   SPEN=1;   
   CREN=1;
   TXIE=0;
   TXEN=1;
   RCIE=0;
   RCIF=0;
}
void SendChar(unsigned char DataIn)
{
   while(TXIF==0);
   TXREG=DataIn;
}
void SendA(unsigned char Num,char En)
{
   SendChar(':');
   SendChar('A');
   SendChar(0x30+Num);
   if(En)
      SendChar('S');
   else
      SendChar('R');
   delay(1000);
}
void SendB(unsigned char Num,char En)
{
   SendChar(':');
   SendChar('B');
   SendChar(0x30+Num);
   if(En)
      SendChar('S');
   else
      SendChar('R');
   delay(1000);
}
void SendC(unsigned char Num,char En)
{
   SendChar(':');
   SendChar('C');
   SendChar(0x30+Num);
   if(En)
      SendChar('S');
   else
      SendChar('R');
   delay(1000);
}
void SendD(unsigned char Num,char En)
{
   SendChar(':');
   SendChar('D');
   SendChar(0x30+Num);
   if(En)
      SendChar('S');
   else
      SendChar('R');
   delay(1000);
}
void RecieveLamp(void)
{
   int timeout;
   SendChar(':');
   SendChar('D');
   SendChar('L');
   timeout=1000;
   while(RCIF==0)
   {
      timeout--;
      if(timeout==0)
      {
         break;
      }
   }
   if(timeout!=0)
   {
      if(RCREG=='S')
      {
         SB6=0;
         SB7=1;
      }
      if(RCREG=='R')
      {
         SB6=1;
         SB7=0;
      }
   }
}
void SendAllStatus(void)
{
   SendA(1,(char)SA1);
   SendA(2,(char)SA2);
   SendA(3,(char)SA3);
   SendA(4,(char)SA4);
   SendA(5,(char)SA5);

   SendD(6,(char)SD6);
   SendD(7,(char)SD7);

   SendB(1,(char)SB1);
   SendB(2,(char)SB2);
   SendB(3,(char)SB3);
   SendB(4,(char)SB4);
   SendB(5,(char)SB5);

   SendD(6,(char)SD6);
   SendD(7,(char)SD7);

   SendC(1,(char)SC1);
   SendC(2,(char)SC2);
   SendC(3,(char)SC3);
   SendC(4,(char)SC4);
   SendC(5,(char)SC5);

   SendD(6,(char)SD6);
   SendD(7,(char)SD7);

   SendD(1,(char)SD1);
   SendD(2,(char)SD2);
   SendD(3,(char)SD3);
   SendD(4,(char)SD4);
   SendD(5,(char)SD5);

   SendD(6,(char)SD6);
   SendD(7,(char)SD7);

}
//覧覧覧覧覧覧覧覧覧覧覧覧覧//
// *****Main Program*****
//覧覧覧覧覧覧覧覧覧覧覧覧覧//
void main(void)
{
   InitInput();
   InitRS232();
   while(1)  //Loop Forever
   {
         SendAllStatus();
     RecieveLamp();   //recieverlamp function
     delay(2000); //หน่วงเวลา 2000

   }
}
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: February 04, 2009, 12:58:34 AM »

มันเป็น Hitech-C นิครับ
ผมไม่ถนัดซะด้วย ต้องขอโทษจริงๆ ครับ

มีท่านใดช่วยได้บ้างไหมครับ ช่วยหน่อย
Logged
Pages: [1]   Go Up
Print
 
Jump to: