ทำไมต่อ Ds1307 แล้วตอนตั้งเวลามันแสดงเลขฐาานสิบหกอะคับช่วยหน่อย
LSVคลังสมองออนไลน์ "ปีที่21"
เมษายน 27, 2024, 07:00:41 PM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
 
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ทำไมต่อ Ds1307 แล้วตอนตั้งเวลามันแสดงเลขฐาานสิบหกอะคับช่วยหน่อย  (อ่าน 2433 ครั้ง)
04_EnE
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 8


อีเมล์
« เมื่อ: มกราคม 05, 2013, 09:54:29 AM »

คือว่าเมือเราเซตปุ่มชั่วโมงหรือนาที เมื่อตั้งเกิน10จะแสดงA เมื่อเราสั่งตกลงแล้ว เช่น ตั้ง 23:10:00 มันจะแสดงเป็น 17:0A:00 มีวิธีแก้ยังไงอะครับ    Cheesy


บันทึกการเข้า

JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #1 เมื่อ: มกราคม 06, 2013, 12:55:57 AM »

ให้บวก 6
0A + 6 = 10
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #2 เมื่อ: มกราคม 06, 2013, 09:04:54 AM »

ไอซี DS1307 ต้องมีการแปลงข้อมูลก่อนการรับและส่ง ตัวอย่างเช่น

รับข้อมูลจาก DS1307
   second   =  Bcd2Dec16(Soft_I2C_Read(1));
   minute   =  Bcd2Dec16(Soft_I2C_Read(1));
   hour      =  Bcd2Dec16(Soft_I2C_Read(0));
**หมายเหตุ Bcd2Dec16 คือ Converts 16-bit BCD numeral to its decimal equivalent.

ส่งข้อมูลไปที่ DS1307
Soft_I2C_Write(Dec2Bcd(minute));
**หมายเหตุ Dec2Bcd คือ Converts input unsigned short integer number to its appropriate BCD representation.
บันทึกการเข้า
04_EnE
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 8


อีเมล์
« ตอบ #3 เมื่อ: มกราคม 07, 2013, 06:24:35 PM »

อย่างนี้ป่าวคับเช่น if(RTC.hr==0A)
                       RTC.hr==10;
ผมลองแล้วมัน Error
*******************************************************************************
มันประกาสได้แต่อย่างนี้ แต่มันไม่ทำงานอะคับ
                     if(RTC.hr==A)
                     RTC.hr==10;
ช่วยหน่อยคับ
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #4 เมื่อ: มกราคม 07, 2013, 10:14:41 PM »

ไม่ใช่ครับ อ่านคำตอบข้างต้นแล้วเข้าใจไหมครับ
คือต้องแปลงฐานตัวเลขก่อน รับมาเป็น hex ต้องแปลงให้เป็น dec ก่อน
จะใช้ฟังก์ชั่นอะไรแปลง หรือจะเขียนฟังก์ชั่นแปลงเองก็แล้วแต่
แล้วค่อยเอาเลขที่ได้จากการแปลงมาใช้งาน
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2006, Lewis Media

lsv2555Please follow the new website at https://www.pohchae.com

Valid CSS!