Title: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: zhexior on August 26, 2011, 06:20:48 PM พอดีผมซื้อหนังสือ AdvancePic Microcontroller in C ของ I-Style มา แล้วอยากรู้เกี่ยวกับการวัดไฟน่ะคับ พอดีในหนังสือมันใช้เบอร์ 18f252 แต่ส่วนตัวผมมีโมดูล 18f8720 อยู่ ก็เลยว่าจะทำดู(ทำในProteus) ตามขั้นตอนทุกอย่าง ของเบอร์ 18f252 ใช้ได้ปรกติ แต่ของเบอร์ 18f8720 ดันไม่ออก ??? ก็เลย งงๆ :-\ A/D ก็ขนาด 10 bit เหมือนกัน แล้วทำไมใช้ไม่ได้ ค้นใน datasheat ก็เลยเจอ ว่ามันใช้คนละความถี่กัน ของ 18f8720 ใช้ 25MHz แต่ของ 18f252 ใช้4MHz ผมก็เลยลองเปลี่ยนดู แต่ก็ยังไม่ได้เหมือนเดิม >:( รบกวนผู้รู้ช่วยด้วยค๊าบบ ???
Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: MicroX on August 26, 2011, 07:18:01 PM การเปลี่ยนเบอร์ MCU นั้นนอกจากจะดูเรื่องขาใช้งานแล้ว ยังต้องดูเรื่อง fuse ด้วยครับ
โดยเฉพาะตัวที่สามรถใช้ PLL ได้จะยุ่งยากเป็นพิเศษทั้ง 18f252 ,18f8720 ก็มีคุณสมบัตินี้ด้วย คุณลองดูในหนังสือของ I-Style ว่ามีหลักการเซ็ตอย่างไร Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: zhexior on August 27, 2011, 09:26:39 AM ไม่ใช่เทียบซะทีเดียวหรอกคับ คือ ผมแค่อยากรู้วิธีใช้งาน A/D ของ 18f8720 น่ะคับ ที่เป็นตอนนี้ คือมันไม่ได้รับค่าไรเลยจากคำสั่ง result = Adc_Read(0); เลยน่ะคับ ถ้ายังไงช่วยแนะนำต่อด้วยนะคับ :'(
void main() { unsigned int result; unsigned char display[4]; TRISA=0xFF; TRISC=0; Lcd_Init(&PORTC); Lcd_Cmd(LCD_CLEAR); Lcd_Cmd(LCD_CURSOR_OFF); while(1) { Lcd_Cmd(LCD_CLEAR); result=Adc_Read(0); display[0]=(result/1000)+48; display[1]=((result%1000)/100)+48; display[2]=(((result%1000)%100)/10)+48; display[3]=(((result%1000)%100)%10)+48; Lcd_Out(1,1,display); delay_ms(500); } } Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: MicroX on August 27, 2011, 11:27:38 PM หากใช้ได้กับ 18f252 ก็ถือว่าลักษณะของคำสั่งน่าจะถูกต้องแล้วนะครับ ส่วนใช้ไม่ได้กับ 18f8720 นั้นก็น่าจะเป็นที่โครงสร้าง ส่วนทำงานบน Proteus ไม่ได้ ก็ไม่ได้สรุปว่ามันจะ ต่อใช้งานจริงไม่ได้เสมอไปนะครับ เพราะ Proteus เองก็มีข้อจำกัด ผมเองก็ไม่ได้ถนัด MikroC ซะด้วย ต้องขอโทษด้วยครับ คงต้องรอท่านอื่นช่วยชี้แนะ Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: zhexior on August 28, 2011, 03:34:01 AM ขอบคุณมากครับ :D เด่วจะลองพยายามอีกสักหน่อย เผื่อจะเจอวิธี >:(
Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: s_engine on August 31, 2011, 02:39:48 PM ใช้ คอมไพเลอร์ตัวไหนครับ ผมยกตัวอย่าง CCS นะครับ
1.กำหนด ความละเอียดของ analog หรือยัง #device adc=10 //ค่าที่อ่านได้10bit 2.กำหนดตัวแปรที่จะเก็บ int result; 3.set port ให้เป็น analog setup_adc_port(AN0); //ให้ขา AN0 เป็น analog เท่านั้น 4.ให้อ่านจากช่องไหนหละทีนี้ set_adc_chanel(0); //อ่านค่าจาก ช่อง0 ในที่นี่คือ AN0 5.หน่วงเวลาสักนิด delay_us(10); //เพื่อเตรียมตัว 6.อ่านค่าจากช่อง0 result=read_adc(); 7.โชว์ printf("read analog=%d",result); ถ้าต่อช่องอื่น หละ ทำไง ถ้าอ่านสองช่องหละทำไง ตัวเลขที่ lcd ไม่นิ่งอ่านไม่ทันทำไง ปล. ที่เขียนให้ดูเป็นแค่แนวทางเท่านั้น ไม่รู้พิมพ์ถูกไหม Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: XRZ_Mazmello on September 02, 2011, 06:47:56 AM ผมเพิ่งจะมาใหม่
ขออนุญาต ตอบหน่อยนะครับ ผมเคยใช้ mikroc กับ 16f877a ในการอ่าน adc ทั้งอนาลอก และดิจิตอล ผมคิดว่าน่าจะเพิ่ม ตรงที่ ADCON1=0xFD; เมื่อ0xFD = 11111101 บิท7 เป็นการเลือกการเก็บผลลัพธ์ adc แบบ 10 บิท 1=right justifiled 0=left justified บิท6 ใช้เลือกความถี่สัญญานนาฬิกาในการแปลง ร่วมกับ adcon0 เช่นความถี่จากคริสตอลหาร4 หาร16 เป็นต้น บิทที่5-4 ไม่ใช้ บิที่3-0 ใช้ในการเลือกขา AN อินพุต ยกตัวอย่าง 1101 ขา AN0 AN1 เป็นแบบอนาลอก ขา AN2 AN3 เป็น vref เพิ่มเป็นแรงดันอ้างอิง ขา AN4- AN7 เป็นแบบดิจิตอล (อย่างเช่น DS1820) หรือเลือก 11110100 ขา AN0 AN1 AN3 เป็นอนาลอก ที่เหลือเป็นดิจิตอล vref ใช้อ้างอิงจากแหล่งจ่ายไฟของ pic เป็นต้น จากตัวอย่างของคุณ อ่านค่า ADC ที่ขา AN0 เป็นแบบอนาลอก โดยคิดว่าน่าจะเทียบไฟ vref- + กับไฟเลี้ยงของ pic ก็ลองเพิ่มบรรทัด ADCON1=0xF4; เข้าไปในฟังก์ชั่นเมน ดูนะครับ ผิดพลาดประการใด รอท่านอึ่นมาชี้แนะครับ.... Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: gundam on September 02, 2011, 07:52:12 AM ผมก็ใช้เป็นแต่ CCS ครับ มีคนใช้ mikroc เป็นมาช่วยตอบ บอร์ดนี้จะได้หลากหลายครับ
ขอบคุณครับ Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: s_engine on September 03, 2011, 05:05:35 PM ผมเพิ่งจะมาใหม่ ขออนุญาต ตอบหน่อยนะครับ ไม่ต้องขออนุญาต หรอกครับ ยินดี และดีใจ ที่ พวกเราจะได้รับความรู้อย่างหลากหลาย จะเสริม จะแทรก จะแย้ง เห็นต่าง หรือ เห็นชอบ ดี ทั้งนั้น ครับ ผมยัง ไม่เคยลงลึกถึงขนาด config bit ค่าย ccs เขา build in funtion มาให้ใช้งาน ง่ายๆ เลยลำบากนิดหน่อย เวลเจอบางงาน ที่ ฟังก์ชัน ให้มาไม่รองรับพอ :'( Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: zhexior on September 11, 2011, 04:38:55 PM อ่า ตอนนี้เปลี่ยนเป็น mplab แล้วคับ พอดีมีdemoที่มันเป็นของ8720 แล้วก็ใช้ได้แบบไม่มีปัญหา โปรแกรมลงบอร์ดเสร็จแล้วเหลือแค่เขียนVB มาซับพอร์ต
แต่ผมยังไม่รู้เลยว่าจะเขียนยังไง ??? ขอบคุณที่คนที่ให้คำแนะนำครับ :-* Title: Re: เปรียบเทียบA/Dของ 18f8720 กับ 18f252 ให้ทีค๊าบบบ Post by: s_engine on September 17, 2011, 09:03:16 AM ไ่รู้จะเขียนยังไง คือ???? ??? ??? ???
สื่อสารระหว่าง pic กับ computer ได้หรือยังครับ |