เยี่ยมไปเลย Altium ชอบงอนบ่อย
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 MenuQuote from: JENG on February 07, 2015, 08:55:23 AM
code ที่แปะเป็น code ที่ใช้งานจริงคับ ยังมีตรงไหนไม่แน่ใจอีกหรือ
Quote from: skytec on February 07, 2015, 10:17:24 AMQuote from: nutzty on February 05, 2015, 08:27:35 PM
ถ้าใช้ arduino มันง่ายก็ใช่ครับ ผมลองใช้แล้ว แต่ตัวงานถูกบังคับให้ใช้ ATmeg8 ครับ
ATMEGA8 ใช้ Arduino ได้ครับ เลือก Board : Arduino NG order W .... ครับ พอเรา comply แล้วมันจะอยู่ที่ c:\...user...\temp\..... ครับ โดย Folder นี้มันจะมองไม่เห็น ต้องกำหนดที่ window ให้แสดง folder ที่ซ่อนไว้ เราจะได้ file : .hex เรา เอาตัวนี้ไปอัดลงบอร์ดเรา ครับ ผมใช้วิธีนี้ครับ
Quote from: JENG on February 06, 2015, 10:38:53 AM
อ่านเพิ่มเติมจาก data sheet เอาคับ ห้ามอ่านแบบผ่านๆนะ ผมเงิบมาแล้วเรื่อง adc ของ avr น่ะ
Quote from: JENG on February 05, 2015, 10:13:46 PM//analog initial
void analog_initial(void){
//Set ADC prescalar to 128 - 125KHz sample rate @ 16MHz
ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
//Set ADC prescalar to 64 - 125KHz sample rate @ 8MHz
//ADCSRA |= (1<<ADPS2)|(1<<ADPS1);
//ADMUX |= (1<<REFS1); //Set ADC reference to 2.56v
ADMUX |= (1<<REFS0); //Set ADC reference to AVCC
//ADMUX |= (1<<ADLAR); //Left adjust ADC result to allow
//ADCSRA |= (1<<ADFR); //Set ADC to Free-Running Mode
ADCSRA |= (1<<ADEN); //Enable ADC
//ADCSRA |= (1<<ADSC); //Start A2D Conversions
}
//analog read
unsigned int analog_read(unsigned char mux_ch){
ADMUX &= 0b11100000;
ADMUX |= mux_ch; //Select ADC Channel ch must be 0-7
ADCSRA |= (1<<ADSC); //Start Single conversion
while(!(ADCSRA&(1<<ADIF))); //Wait for conversion to complete
ADCSRA |= (1<<ADIF); //Clear ADIF by writing one to it
return ADC;
}
Quote from: az on February 05, 2015, 10:14:21 PMQuote from: nutzty on February 05, 2015, 08:09:57 PM
ขอคำปรึกษาเกี่ยวกับ ADC ของ ATmega8 หน่อยครับ พอดีอ่าน datasheet แล้วสงสัยว่าหลังจาก conversion เสร็จแล้วค่าที่อ่านมาได้จะถูกเก็บไว้ที่ ADCH/ADCL ใน ADLAR ถูกไหมครับ และถ้าเราจะนำค่าที่อ่านได้มาใช้ต่อเนี่ย สามารถเขียนโค้ดในลักษณะใดได้บ้างครับ
ปล. ADC ที่จะใช้คือรับค่ามาจาก infrared distance sensor แล้วจะนำค่าที่อ่านได้ที่ระยะต่างๆมาใช้ครับ
ประกาศตัวแปรมารับค่าจาก port ADC ได้เลยครับunsigned w_sensor = ADC; // ADC คือ port regidter(16 bit) ประกอบด้วย ADCH(8 bit), ADCL(8bit)
ถ้าใช้ 10 bit หลังจะได้ค่า 0 - 1023
ปล. ADLAR คือ การกำหนดว่าจะใช้ 10 bit หน้า หรือ 10 bit หลังครับ