มีปัญหา RS 485 ใน CCS ครับ

  • 11 Replies
  • 3940 Views
Re: มีปัญหา RS 485 ใน CCS ครับ
« Reply #8 on: March 18, 2013, 09:44:54 pm »
อ้าววววววววววววว   :'(
ท่าน JENG  ลบไปแล้วอะครับ ยังไม่ทันเริ่มเลย อะครับ
 :'(

*

Offline JENG

  • *****
  • 808
  • รู้ทุกเรื่องเว้นเรื่องจริง
    • View Profile
Re: มีปัญหา RS 485 ใน CCS ครับ
« Reply #9 on: March 18, 2013, 09:45:34 pm »
ฮ่วย ...  จะ edit ดันลบกะทู้ตัวเองซะนี่ ...  :P ไปหมดแระสมอง
ตามกระทู้ที่กล่าวก่อนท่าน olee หน้านี้ คือเรื่อง timeout เมื่อข้อมูลไม่ครบอันนี้สำคัญมากครับ
ข้อมูลจาก buffer จะต้อง sync กันเสมอถึงจะเปรียบเทียบกันได้ถูกต้อง ...

ลืมไปหมดแล้วว่าที่ลบไปพิมพ์ว่าอะไรมั่ง  :-\ เซง
สามารถติดตาม electoday ได้ที่

Facebook
www.facebook.com/groups/coopmicro

Google+
https://plus.google.com/communities/103482067769375459277

☺☺☺ความรู้ และความฉลาด ไม่ใช่สิ่งเดียวกัน จะมีประโยชน์อะไร ถ้าฉลาดแต่อยู่ในกะลา☺☺☺

Re: มีปัญหา RS 485 ใน CCS ครับ
« Reply #10 on: March 18, 2013, 11:20:24 pm »
Code: [Select]
#include <16F628A.h>
#device *=16
#fuses HS, NOWDT, NOLVP, NOBROWNOUT, NOPROTECT, PUT
#use delay(clock=20000000)
//#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1,enable=PIN_B0, stream=PC)

#define RX PIN_B1
#define TX PIN_B2
#define EN PIN_B0

#use rs232(baud=9600, xmit=TX ,rcv=RX, enable=EN, stream=RS485,ERRORS)

#include <string.h>
#include  <dht22.c>
#include <stdlib.h>

void main()
{
char a[4]; // input string
//char b[10]= "@RHTemp1"; //Key ID
char b[4]= "@T1",C; //Key ID                          C ==> buffer or Dummy

float dhthum=0, dthtemp=0;
//long int temp=0,humid=0;
long long H=0,T=0;//,S;
   
   dht_init();
   delay_ms(500);

while(1)
{
char RHTch[9],string1[8], string2[8]; //a[10]="",
delay_ms(50);

C=getc();
if(C=='@')    // ถ้าขึ้นต้นด้วย @ ให้เริ่มแยกสาย string ที่เข้ามา
{
   a[0]=C;
      C=getc();
      a[1]=C;
      C=getc();
      a[2]=C;
   }
else
{
a[0]="";a[1]="";a[2]="";a[3]="";
}


//gets(a); // input string                 ไม่ได้ใช้ gets() แล้ว
delay_ms(50);

fprintf (RS485,"<%c>\n\r"a[0]);
fprintf (RS485,"<%c>\n\r"a[1]);
fprintf (RS485,"<%c>\n\r"a[2]);
fprintf (RS485,"<%c>\n\r"a[3]);
fprintf (RS485,"<%c>\n\r"a[4]);

if(!strcmp(b,a)) // Compare gets() = ID ?
{
             
               a[0]="";a[1]="";a[2]="";a[3]="";
}   

}
}


เย่ๆๆๆๆๆ   ได้แล้วครับ ทำตามไอเดียที่ให้มาครับ  แต่เป็นแบบ เช็คตำแหน่ง แทนครับ

แต่ก็อยากรู้แนวทางของ timeout อยู่ดีครับเพื่อจะได้ทำให้มันนิ้งยิ่งขึ้นครับ

 ;D ;D ;D

*

Offline olee

  • **
  • 69
    • View Profile
Re: มีปัญหา RS 485 ใน CCS ครับ
« Reply #11 on: March 19, 2013, 09:13:34 am »
ดีใจด้วยครับ