Thai microtron community

Electronic Knowledge Base => Microcontoller & Electronics => Topic started by: Mr.P on June 23, 2010, 05:04:10 PM



Title: จาก ตัวอย่าง PWM ถ้าผมจะเอาโค๊ดไปดัดแปลงใ#
Post by: Mr.P on June 23, 2010, 05:04:10 PM
ตัวอย่าง PWM http://www.thaimicrotron.com/CCS-628/EXAM/ModuleCCP1.htm

ผมงงๆ ตรงนี้ หน่ะครับ
//*** PIC16F628 ***
#byte   PORTB   = 0x06
#byte   TRISB   = 0x86
#byte   PR2     = 0x92
#byte   TMR2   = 0x11
#byte   T2CON   = 0x12
#byte   CCPR1L   = 0x15
#byte   CCP1CON   = 0x17

ถ้าเอาไปใช้กับ  18F458 ผมต้องกำหนดค่าพวกนี้เป็นเท่่าไหร่้  พอดีเปิดหาใน datasheet แล้วไม่เจอ ช่วยแนะนำหน่อยครับ ขอบคุณครับ

 


Title: Re: จาก ตัวอย่าง PWM ถ้าผมจะเอาโค๊ดไปดัดแปลงใ
Post by: Mr.P on June 24, 2010, 09:31:21 AM
อ๋อ รู้แล้ว ไปดูใน data sheet  หน้าที่เขียนว่า "SPECIAL FUNCTION REGISTER MAP"  บางตัวเรียกว่า "DATA MEMORY MAP"   ;D



Title: Re: จาก ตัวอย่าง PWM ถ้าผมจะเอาโค๊ดไปดัดแปลงใ
Post by: smitdh on June 24, 2010, 03:28:08 PM
เพิ่มเต็มอีกนิดครับ style ที่ให้ตัวอย่างไว้ใน web เป็น style Ansi-C ครับ เพื่อเป็นแนวทางการใช้งานในรูปแบบนี้
ซึ่งจะใช้คอมไพเลอร์ คอมไพให้เท่านั้น (ไม่ได้ใช้ fn ของ CCS) ต้องกำหนด address ของ Register เอง
ข้อเสียคือเมื่อเวลาเปลี่ยนเบอร์ จะต้องตรวจสอบให้แน่ใจก่อนว่า เบอร์ที่ใช้มี address ตรงกันหรือเปล่า
และจะเขียนยากกว่า

หากใช้ฟังก์ชั่นของ CCS ก็มีเช่น
set_pwm1_duty( );
setup_ccp1( );

ลองศึกษาเพิ่มเติมดูนะครับ


Title: Re: จาก ตัวอย่าง PWM ถ้าผมจะเอาโค๊ดไปดัดแปลงใ
Post by: Mr.P on June 24, 2010, 03:56:12 PM
ขอบคุณมากครับ ตอนนี้ลงทำตามที่บอกแล้วครับ โดยใช้ fn CCS

set_pwm1_duty( );
setup_ccp1( );

ขอบคุณมากครับ