ปัญหาระหว่าง 18F458/16F877
LSVคลังสมองออนไลน์ "ปีที่21"
กรกฎาคม 03, 2024, 06:20:59 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
 
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ปัญหาระหว่าง 18F458/16F877  (อ่าน 4806 ครั้ง)
PR-TRAFFIC
member
*

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

กระทู้: 41


« เมื่อ: มีนาคม 19, 2011, 04:08:55 PM »

ผมใช้ 877 มาตลอด  แต่ทีนี้ฟังชั้นการทำงานและเงื่อนไขเพิ่มมากขึ้น
ผมสำรวจดูแล้วว่า 458 มีแรมมากกว่า 877 
ผมจึงอยากใช้ 458 แทน  โดย 458 และ 877  มีตำแหน่งขาเหมือนกันเลยไม่ต้องออกแบบลายวงจรใหม่
แต่โปรแกรมไม่ทำงานให้ได้อย่างที่คิด
ผมเขียนด้วยภาษาเบสิก โดยไมโครโคดเขียนโปรแกรมครับผม
รายละเอียด เงื่อนไขตัวเดียวกันกับ 877  ก่อนที่จะคอมไพล์ก็ได้เลือกตัวอุปกรณ์ใหม่เป็น 458 ส่วนหัวของโปรแกรม ไม่ได้ประกาศไว้ ทดลองคอมไพล์ทั้ง 877 และ 458  ผลคือคอมไพล์ผ่านทั้งสองเบอร์(เปลี่ยนเบอร์ IC ทุกครั้งก่อนคอมไพล์)  แต่การทดลองงานจริง  458 ไม่ทำงานเลย  ส่วน 877 ทำงานปรกติดี
บนตัวบอร์ดทดลองมีจั้มเปอร์ให้สลับ ระหว่าง 16F - 18F ( บอร์ด ET-BASE40 - ของบริษัท ETT )
จากที่กล่าวมานี้ผมควรแก้ไขที่ตรงไหนบ้างครับ


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

JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #1 เมื่อ: มีนาคม 19, 2011, 07:14:05 PM »

ดู fulse bit ด้วยมันไม่เหมือนกัน....
บันทึกการเข้า
PR-TRAFFIC
member
*

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

กระทู้: 41


« ตอบ #2 เมื่อ: มีนาคม 19, 2011, 08:42:09 PM »

fulse bit   คืออะไรครับ  ผมไม่เคยรู้จัก
แล้วผมต้องทำยังไง ช่วยอธิบายละเอียดด้วยครับ
ขอบคุณครับ
บันทึกการเข้า
JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #3 เมื่อ: มีนาคม 20, 2011, 12:29:14 AM »

พวก config bit เป็นตัวกำหนดคุณสมบัติบางอย่างของ mcu
ที่ใช้ไงครับ เช่น ย่านความถี่ lowvoltprogram brownoutdetect
PLL อื่นๆ.....
บันทึกการเข้า
PR-TRAFFIC
member
*

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

กระทู้: 41


« ตอบ #4 เมื่อ: มีนาคม 21, 2011, 12:26:35 PM »

@ DEVICE PIC16F877,XT_OSC,LVP_OFF,BOD_ON,CPD_OFF,PROTECT_OFF,WDT_OFF
   DEFINE OSC 4
   ADCON1=$07
   TRISA=%00111111
   TRISC=$00
    TRISB=$00
    TRISD=%11111111
    TRISE=%00000111
เป็นการกำหนดส่วนหัวโปรแกรมแบบนี้หรือเปล่าครับ
นี้เป็นส่วนหัวโปรแกรมของ PIC16F877  ที่ผมเขียนและใช้ได้ดีครับ
แล้วผมแก้ไขที่ 16F877  เป็น 18F458  และในส่วนกำหนดอุปกรณ์ก่อนการคอมไพล์ครับ
คอมไพล์ผ่าน ทดลองโปรติอุสทำงานได้  แต่บนบอร์ดจริงไม่ทำงาน   
บันทึกการเข้า
JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #5 เมื่อ: มีนาคม 21, 2011, 01:36:30 PM »

ลองเอา datasheet ทั้งสองเบอร์มาเทียบกันครับ...
จำลองการทำงานได้ไม่ได้หมายความว่ามันจะต้องทำงานจริง
ได้..... ถ้าใน 16 ด้วยกันมันเป็นเรื่องแปลกที่ไม่ทำงาน
แต่นี่มันข้ามเป็น 18 reg. มันคนละเรื่องกับ 16 config word
ก็ต่างกัน ไปหา data sheet มาเปิดเทียบกันเลยแล้วจะรู้....

หรือไม่ก็ใช้ pickit2 debug เลย... ง่ายดี....  Smiley
บันทึกการเข้า
PR-TRAFFIC
member
*

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

กระทู้: 41


« ตอบ #6 เมื่อ: มีนาคม 22, 2011, 08:59:02 PM »

ขอบคุณมากครับผมสำหรับคำแนะนำ
บันทึกการเข้า
หน้า: [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!