Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - tha

#4145
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 24, 2019, 03:01:34 PM
คราวนี้มาลองบอร์ด ET-BASE AVR EASY32U4 เข้ากับจอ GLCD5110 ดูบ้าง จอ GLCD5110 ใช้กับไฟ 3.3V ใช่ไหม เราก็ต้องให้บอร์ดของเราใช้ไฟ 3.3V ด้วย แต่ว่าเมื่อดูที่กราฟคุณสมบัติ หน้านี้ http://www.electoday.com/index.php/topic,15827.96.html จะเห็นได้ว่า crytal 16MHz มันเร็วเกินไปถ้าบอร์ดใช้ไฟ 3.3V ผมจะไม่เปลี่ยน crytal แต่จะใช้วิธีหาร clock prescaler เอา ดู 13.11. System Clock Prescaler แถวนี้ http://www.electoday.com/index.php/topic,15827.80.html เมื่อหารแล้วก็จะได้ clock = 8MHz ซึ่งไม่เร็วเกินไปถ้าบอร์ดใช้ไฟ 3.3V
Quote
    CLKPR = 0x80;          // set CLKPCE to 1 while set CLKPS to 0
    CLKPR = 0x01;          // set CLKPCE to 0 while set CLKPS to 1
                          // to prescaler with 2 to divide clock 16Mhz to 8Mhz
    for( w=0; w<5; w++ )
     {
         asm volatile ("nop" :: );   // No operation for 5 cycle
       }
แต่ก่อนที่จะให้บอร์ดไปใช้ไฟ 3.3V ขณะที่บอร์ดยังใช้ไฟ 5V อยู่ เราต้องแก้ fuse bits brow out detection จาก 4.3V ให้เป็น 2.6V ก่อน ไม่งั้น เมื่อบอร์ดไปใช้ไฟ 3.3V แล้ว บอร์ดจะไม่ทำงาน เพราะไฟมันต่ำกว่า brow out detection 4.3V



คราวนี้ก็ใช้ไฟ 3.3V ได้ โดยเอาจัมเปอร์เลือกไฟระหว่างไฟจาก usb หรือไฟจากไอซี u3 ออก แล้วเอาไฟจาก power supply 3.3V ภายนอกเสียบเข้าที่พินกลางแทน ส่วนพิน GND ก็เสียบเข้ากราวน์ถึงกัน ก็เป็นอันใช้ได้ บอร์ดสามารถใช้ไฟ 3.3V



ส่วนตัวโปรแกรม GLCD5110.h ผมเอาตัวอย่างของ Inex ของบอร์ด stm32 มาโม ต้องขอขอบคุณมา ณ ที่นี้ด้วยครับ แต่ตัวอักษร font มันไปจองที่ ram กิน ram ไปประมาณ 500 ไบต์เลย ก็สามารถทำงานได้ มีโปรแกรมตัวอย่าง

http://www.mediafire.com/file/afrqy7qw3xqeb6r/GLCD5110_32u4_1.rar/file

แต่ถ้าเอา font ไปจองใน flash rom แล้วจะไม่ทำงาน เดี๋ยวผมจะเช็คโปรแกรมดูก่อนว่าเป็นเพราะอะไร
#4146
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 23, 2019, 12:39:14 PM
เดี๋ยวจะลองจอ GLCD5110 ดูนะ อ่านคู่มือว่าเราสามารถตั้งเป็น 5V ก็ได้ ก็ต้องศึกษาเพิ่มเติมอีกสักหน่อย
เดี๋ยวจะลอง keypad ด้วย มี ET-MINI KEY 4x4 อยู่ ลองเส็ร์จกูเกิ้ลหาคู่มือมาดูนะ จะลองศึกษาหาวิธีก่อน เอาอันไหนก่อนดีหล่ะ
#4147
ปิดการซื้อ ไม่เอาหล่ะ เอา AVR ก่อน หลายเบอร์ไม่ไหว ขอบคุณครับ
#4148
ท่านใดมีแล้วไม่ได้ใช้ อย่างใดอย่างหนึ่งก็ได้ ขอซื้อหน่อย จะเอามาเล่น ARM ต่อครับ
#4149
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 21, 2019, 01:26:10 PM
เรื่องภาษาซีที่แสดงเป็น %d หรือ\f หรืออื่นๆ ก็ดูเอาที่นี่ก็ได้ ก็ขอขอบคุณคุณครูพนัสที่เขียนเว๊บให้ได้ศึกษามา ณ ที่นี้ด้วยครับ
https://sites.google.com/site/cprogramingbypanus/kar-saedng-phllaphth/printf1
#4150
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 21, 2019, 11:51:29 AM
คราวนี้มาลองบอร์ด ET-BASE AVR EASY32U4 ADC มาแสดงที่ uart ด้วย LCD16x4 ด้วย เรามีเฮดเดอร์ไฟล์เก็บเอาไว้เยอะแล้ว ก็เป็นเรื่องง่ายที่จะนำเอามาใช้ เพียง #include file เข้าไปก็เรียกใช้งานเฮดเดอร์ไฟล์นั้นได้แล้ว มีโปรแกรมตัวอย่างครับ

http://www.mediafire.com/file/cik06hmckqfooaj/LCD16x4_32u4_adc_uart1.rar/file





#4151
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 20, 2019, 05:10:26 PM
แก้ไขได้ละ ทำแบบนี้เอา ถ้าได้ค่าต่ำกว่า 10 ก็เติม 0 เข้าไป ก็จะแสดงผลได้ถูกต้องแล้วครับ มีท่านใดแนะนำมาอีกไหมนี่ เราทำงานกันเป็นทีมนะ ต้องขอขอบคุณด้วย ช่วยแก้ไขในโปรแกรมก่อนหน้าด้วยครับ
Quote
c = (adc_result*5)/Vadc;
  d = (((adc_result*5)%Vadc)*10)/102;
  if(d<10)
    {
     //sprintf(LCD_buf,"%d.%d ", (adc_result*5)/Vadc,(((adc_result*5)%Vadc)*100)/Vadc);
     //sprintf(LCD_buf,"%d.%d ", (adc_result*5)/Vadc,(((adc_result*5)%Vadc)*10)/102);
      sprintf(LCD_buf,"%d.0%d ", c, d);
   }
  else
   {
     sprintf(LCD_buf,"%d.%d ", c, d);
    }

http://www.mediafire.com/file/d7p33hlrvn3ug25/LCD16x4_32u4_adc4%25282%2529.rar/file
#4152
AVR and Arduino / Re: Atmega328P Datasheet 18. I/O Ports 1
September 20, 2019, 04:45:05 PM
อย่างนี้ก็ไม่ได้อีก ขึ้นค่าไม่ถูกต้องเหมือนกัน อย่างปรับค่าเป็น 3.05V แทนที่จะขึ้นค่าอย่างนี้ กลับแสดงได้เป็น 3.5V ไป ไม่ได้สังเกตุดูให้ดีๆ เดี๋ยวลองหาวิธีดูก่อน ไม่ทราบท่านใดแนะนำมา ต้องขอขอบคุณด้วยครับ