سلام دوستان.
پروژه ای که من می خوام انجام بدم اینه که از طریق ESP8266 به سایت ساعت جهانی وصل بشم و ساعت میکرو رو آپدیت کنم .
وقتی به سایت ساعت وصل بشی و 1 کارکتر براش بفرستی ، سایت 4 بایت اطلاعات رو به صورت سریال و بایت به بایت برمیگردونه که اگه این 4 بایت رو کنار هم قرار بدی میزان ثانیه ای بدست میاد که از طریق اون میشه زمان و تاریخ رو بدست آورد.
مسیله من اینه که وقتی این 4 بایت رو کنار هم قرار میدم ، عددی که فرستاده شده بدست نمیاد.
فرمت اطلاعاتی که بعد از فرستادن 1 بایت به شما باز گردونده میشه به صورت زیره
بعد از دو نقطه 4 بایت اطلاعات فرستاده میشه که اگه فرمت رو تو حالت هگز قرار بدیم مشخص میشن :IPD+
این روتین کده
union Time
{
uint32_t I;
uint8_t C[4];
}Sec;
interrupt [USART_RXC] void usart_rx_isr (void)
{
.
.
.
(if(storage_flag
{
Sec.C[i] = data;
i++;
}
rx_buffer[rx_wr_index++] = data;
if(data==':')
{
storage_flag = 1;
}
}
کد این قسمت توسط ساختار union نوشته شده . از طریق شیفت دادن هم فکر کنم میشه داده ها رو کنار هم قرار داد . در کل به نظرتون ایراد از کجاست ؟
پروژه ای که من می خوام انجام بدم اینه که از طریق ESP8266 به سایت ساعت جهانی وصل بشم و ساعت میکرو رو آپدیت کنم .
وقتی به سایت ساعت وصل بشی و 1 کارکتر براش بفرستی ، سایت 4 بایت اطلاعات رو به صورت سریال و بایت به بایت برمیگردونه که اگه این 4 بایت رو کنار هم قرار بدی میزان ثانیه ای بدست میاد که از طریق اون میشه زمان و تاریخ رو بدست آورد.
مسیله من اینه که وقتی این 4 بایت رو کنار هم قرار میدم ، عددی که فرستاده شده بدست نمیاد.
فرمت اطلاعاتی که بعد از فرستادن 1 بایت به شما باز گردونده میشه به صورت زیره
بعد از دو نقطه 4 بایت اطلاعات فرستاده میشه که اگه فرمت رو تو حالت هگز قرار بدیم مشخص میشن :IPD+
این روتین کده
union Time
{
uint32_t I;
uint8_t C[4];
}Sec;
interrupt [USART_RXC] void usart_rx_isr (void)
{
.
.
.
(if(storage_flag
{
Sec.C[i] = data;
i++;
}
rx_buffer[rx_wr_index++] = data;
if(data==':')
{
storage_flag = 1;
}
}
کد این قسمت توسط ساختار union نوشته شده . از طریق شیفت دادن هم فکر کنم میشه داده ها رو کنار هم قرار داد . در کل به نظرتون ایراد از کجاست ؟