คำถามติดแท็ก atmega

ATMega เป็นตระกูลในซีรีย์ AVR ของไมโครคอนโทรลเลอร์ Atmel นี่คือไมโครคอนโทรลเลอร์หลักของแพลตฟอร์มการสร้างต้นแบบ Arduino โปรดระบุหมายเลขชิ้นส่วนเฉพาะในคำถามของคุณ

7
ฉันจะทำให้ atmega328 ของฉันทำงานเป็นเวลาหนึ่งปีด้วยแบตเตอรี่ได้อย่างไร
สถานการณ์ ฉันได้สร้างล็อคประตูอิเล็กทรอนิกส์ที่ดีสำหรับห้องพักหอพักของฉัน ปัจจุบันเป็น Arduino Diecimila ที่มี servo [un] ล็อคประตู มันมีปุ่มกดตัวเลขที่มีปุ่ม 3x4 และ 5 LED (2 ชุดคู่และ LED เดียว) มันยังทำงานบนเครื่องชาร์จโทรศัพท์มือถือ ตอนนี้ฉันได้ออกแบบใหม่เพื่อให้ทำงานบน Arduino แบบสแตนด์อโลน (ATmega328) แต่ต้องการให้มันทำงานบนแบตเตอรี่ AA หรือแม้กระทั่งแบตเตอรี่ขนาด 9V สำหรับส่วนซอฟต์แวร์ฉันคิดว่าฉันสามารถsleepโทรหาบางครั้งภายในวิธีวนรอบเพื่อให้การใช้พลังงาน ATmega ต่ำที่สุด และปล่อย "แฟลช" ของ LED ให้นานที่สุดเท่าที่จะเป็นไปได้ คำถามที่ 1 เมื่อมีการกดปุ่มในช่วงเวลาไม่กี่มิลลิวินาทีที่บอร์ดหลับจะมีการ "จดจำ" / "ถือ" ไว้จนกว่ามันจะออกจากโหมดสลีปแล้วจะถูกเลือกเป็นการกดปุ่มหรือไม่? อะไรจะเป็นวิธีที่ดีที่สุดในการจัดการกับการกดปุ่มนี้ในโหมดสลีป ฉันสามารถเขียนโค้ดเพื่อให้ปลุกเมื่อมีการใช้งานปุ่มหรือฉันต้องปล่อยให้โหมดนอนหลับเช่น 10m.s ในทุก ๆ วง? คำถามที่ 2 …

7
จะเกิดอะไรขึ้นถ้าฉันละเว้นตัวต้านทาน pullup บนบรรทัด I2C
เพิ่งทราบว่าข้อมูลและสายสัญญาณI 2 C (SDA และ SCL) ต้องมีตัวต้านทานแบบดึงขึ้น ฉันได้สร้างนาฬิกาสองสามดวงโดยใช้ DS1307 RTC (ดูแผ่นข้อมูล ) ตามแผนผังด้านล่าง สังเกตว่าฉันได้ตัดตัวต้านทานแบบดึงขึ้นมาทั้งสองตัวแล้ว นาฬิกาทั้งสองทำงานได้ดีหนึ่งในนั้นทำงานมานานกว่า 3 เดือนแล้ว เป็นไปได้อย่างไร? ไม่ว่าในกรณีใดฉันอยากรู้ว่า: จะเกิดอะไรขึ้นเมื่อละเว้นการดึงข้อมูลI 2 C การขาด pullups มีแนวโน้มที่จะสร้างความเสียหายให้กับไอซีทั้งสองในบอร์ดของฉันหรือไม่? ฉันตอบหลังจากที่ระบุกรณีเฉพาะของฉันในการเชื่อมต่อ ATmega328P กับ DS1307 RTC เหมือนในแผนงานที่ฉันให้ แต่ถ้าคำถามไม่กว้างเกินไปมันจะมีประโยชน์ถ้ารู้ว่าจะเกิดอะไรขึ้นเมื่อดึงพูลทั่วไป เช่นในสถานการณ์อื่นของการดำเนินการI 2 C PS ฉันค้นหาเครือข่ายอินเทอร์เน็ตเพื่อค้นหาคำตอบ แต่สามารถหาบทความเกี่ยวกับการวัดขนาดการดึง อัปเดต:ฉันใช้ Arduino IDE 1.03 และเฟิร์มแวร์ของฉันจัดการ RTC โดยใช้DS1307RTC Arduino lib (ผ่านฟังก์ชั่นRTC.read()และRTC.write()) lib นั้นจะใช้Wire.hเพื่อพูดคุยกับ …
33 atmega  i2c  pullup  rtc 

5
ATMega8: ทำไมต้องเชื่อมต่อ VCC และ AVCC
ฉันมักจะอ่านว่าเป็นวิธีปฏิบัติที่ดีในการเชื่อมต่อ VCC กับ AVCC แม้ในแผ่นข้อมูล ATMega8 มันบอกว่า: AVCC เป็นแหล่งจ่ายแรงดันพินสำหรับตัวแปลง A / D, พอร์ต C (3..0) และ ADC (7..6) ควรเชื่อมต่อกับ VCC ภายนอกแม้ว่าจะไม่ได้ใช้ ADC หากใช้ ADC จะต้องเชื่อมต่อกับ VCC ผ่านตัวกรองสัญญาณความถี่ต่ำ โปรดทราบว่าพอร์ต C (5..4) ใช้แรงดันไฟฟ้าดิจิตอล VCC แต่ไม่มีที่ไหนที่ฉันสามารถหาคำอธิบายว่าทำไมพวกเขาต้องเชื่อมต่อ วงจรง่าย ๆ สำหรับการกะพริบไฟ LED ทำงานโดยไม่ต้องเชื่อมต่อ VCC และ AVCC ฉันต้องยอมรับมันหรือมีเหตุผลที่ดีหรือไม่?
20 avr  atmega  basic 

5
ฉันจะอ่านอินพุตดิจิตอลบน ATmega16 ได้อย่างไร
ฉันจะทำอะไรต้องทำเพื่ออ่านสัญญาณแบบดิจิตอล (ปุ่มกด) บนATmega16 ? ฉันต้องเปิดใช้งานตัวต้านทานแบบ pullup หรือฉันสามารถใช้ 10 kohm ได้หรือไม่ รหัสง่ายๆอะไรจะเป็นอย่างไร เพียงแค่ 'เปิดไฟ LED เมื่อมันกด' มีแบบฝึกหัดสำหรับผู้เริ่มต้นไหม ฉันได้ลองใช้ googling และAVR Freaksแล้ว แต่ทุกสิ่งก็พัฒนาไปสู่การต่อสู้ที่นั่นและฉันก็ไม่ได้รับคำตอบ ฉันไม่พบบทเรียนเกี่ยวกับสิ่งนี้จริงๆ มีสิ่งต่าง ๆ มากมาย แต่ไม่มีอะไรง่าย ๆ เกี่ยวกับไมโครคอนโทรลเลอร์AVRของฉัน...
18 avr  atmega 

6
ใช้ ATMega328 กับ oscillator ภายในหรือไม่
ฉันมีโครงการที่ฉันคิดว่าเหมาะสมที่สุดสำหรับ ATMega328P อย่างไรก็ตามในทุก ๆ โครงการที่ฉันเคยเห็นผู้คนมักจะเชื่อมต่อกับออสซิลเลเตอร์ภายนอก 16MHz จากสิ่งที่ฉันเห็นมันควรมีออสซิลเลเตอร์ภายใน 8MHz โครงการของฉันไม่ต้องการพลังการประมวลผลจำนวนมากและเวลาไม่จำเป็นต้องแม่นยำมาก (นอกเหนือจาก UART และ I2C) ฉันมีโปรแกรมเมอร์ด้วยดังนั้นฉันไม่ต้องกังวลกับ bootloaders มีเหตุผลใดที่ฉันจะใช้ออสซิลเลเตอร์ภายนอก?
18 avr  atmega  oscillator  clock 

9
การอ่านเซ็นเซอร์อะนาล็อกจำนวนมากแบบเรียลไทม์
ฉันพยายามสร้างตัวควบคุม MIDI ที่มีคอเหมือนกีตาร์ ที่คอนั้นมีเมทริกซ์เซ็นเซอร์ความดันขนาดใหญ่ ตัวควบคุมจะเลียนแบบ 3 สาย วิธีการทำงานคือ: มีเทปทองแดงสองหน้ายาว 3 แถบ (กว้าง 0.5 ซม. ยาวเท่าคอ) ซึ่งเชื่อมต่อกับพลังงาน (3.3V หรือ 5V อาจไม่สำคัญตอนนี้) บนแถบเหล่านี้เป็นชั้นของ Velostat ซึ่งจะเปลี่ยนความต้านทานตามความดัน ที่ด้านบนของ velocity จะเป็นอีกชั้นหนึ่งของแถวหรือเซลล์ของเทปทองแดงที่เชื่อมต่อกับบางสิ่งบางอย่างที่แยกการอ่านของแรงดันไฟฟ้าผ่านชั้นของ velostat เนื่องจากคอยาวประมาณ 40 ซม. จะมีอย่างน้อย 80 แถว หากคุณลองนึกภาพแถบทองแดงด้านล่าง 3 แถบเป็นคอลัมน์ของแผนภูมิที่คอคอเซ็นเซอร์อาจเป็นเซลล์หรือแถวขึ้นอยู่กับวิธีการวัด อาจมีหลายแถว) มีเงื่อนไขพิเศษบางอย่างที่อาจทำให้ง่ายขึ้นแม้ว่า: เนื่องจากเป็นคอนโทรลเลอร์ที่เหมือนกีตาร์ไม่จำเป็นต้องวัดการโต้ตอบทุกครั้ง! เฉพาะการสัมผัสที่ใกล้เคียงกับร่างกายของคอนโทรลเลอร์เท่านั้น นอกจากนี้ความละเอียด 8 บิตควรแม่นยำเพียงพอ ระดับความดัน 255 อาจเป็นสิ่งที่จำเป็นมากกว่า ตอนนี้บิตยาก: การวัดต้องเป็นแบบเรียลไทม์ - y …

2
ฉันจะใช้ SMD Arduino เพื่อตั้งโปรแกรม DIP ATmega328 ได้อย่างไร
ฉันมี Arduino ซึ่งมีไมโครคอนโทรลเลอร์ติดตั้งบนพื้นผิว (SMD): ฉันรู้วิธีใช้ DIP arduino เป็นโปรแกรมเมอร์สำหรับ DIP ATmega328 เป็นเรื่องง่าย - คุณเพียงแค่ใส่ไมโครคอนโทรลเลอร์ของคุณในที่ยึด อย่างไรก็ตามด้วย Arduino ที่ติดตั้งบนพื้นผิวก็ไม่มีความชัดเจน Desoldering ตัวควบคุมขนาดเล็กเป็นวิธีหนึ่ง แต่นั่นเป็นสิ่งที่เลวร้ายและเป็นอันตราย ฉันสามารถใช้ Arduino นี้เป็นโปรแกรมเมอร์สำหรับ DIP ATmega328 โดยไม่ทำลายบอร์ดได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร

2
ปกป้อง AVR แฟลชจากการอ่านผ่าน ISP?
ฉันพยายามป้องกันทั้งแฟลชจากการอ่านผ่าน ISP มันมี bootloader สามารถโปรแกรมส่วนตนเอง การตั้งค่าล็อคไบต์เป็น: LB1/LB2 จะไม่อนุญาตให้ผู้ใช้ใช้ bootloader เพื่ออัปโหลดเฟิร์มแวร์ใหม่ BLB12/BLB11และBLB01&BLB02จะไม่ป้องกันการอ่านแฟลชผ่าน ISP หากฉันไม่ผิด ดังนั้นจึงไม่มีวิธีให้ผู้ใช้อัปเดตเฟิร์มแวร์โดย bootloader ที่กำหนดเองและป้องกันแฟลชจากการอ่านในเวลาเดียวกันได้หรือไม่
15 avr  atmega  protection 

1
V-USB จะขันสกรู SPI ในตัวของ ATmega328p ได้อย่างไร
ฉันกำลังทำงานในโครงการ V-USB ที่แสดงเป็นแป้นพิมพ์โดยใช้ ATmega328p ส่วน USB ใช้งานได้ดี (ไม่ใช่โครงการ V-USB ครั้งแรกของฉัน) แต่หลังจากที่ฉันเริ่มต้น V-USB สแต็กด้วยการusbInit()โทรไปยังไลบรารีการ์ด SD ทั้งหมดล้มเหลว ถ้าฉันเรียกฟังก์ชั่นเดิมมาก่อนusbInit()ทุกอย่างจะทำงานได้อย่างสมบูรณ์ ฉันใช้ Arduino โคลนที่เรียกว่า Diavolino แต่ไม่มีโครงร่าง Arduino / เดินสาย ฉันมี USB ที่เชื่อมต่อกับ I / O ดิจิตอล 2 และ 3 และการ์ด SD ถึง 10-13 (สาย SPI ในตัว) ฉันดูในห้องสมุดการ์ด SD และพบว่าไม่มีสัญญาณของมันโดยใช้การขัดจังหวะหรือการลงทะเบียนใด ๆ นอกเหนือSPxxจาก ฉันยังgrepต้องใช้รหัส V-USB ด้วยซ้ำ แต่มันไม่ได้แตะที่SPxxรีจิสเตอร์ …
14 avr  atmega  spi  usb-device  sd 

3
กำลังขับมอเตอร์กระแสตรงด้วย MOSFET และไมโครคอนโทรลเลอร์หรือไม่?
ฉันกำลังพัฒนา Quadcopter นาโนโดยใช้ไมโครคอนโทรลเลอร์ Atmega328 ใช้พลังงานที่ 3.3 โวลต์และมอเตอร์กระแสตรงที่มีแปรงขนาดเล็กมาก ค่าเฉลี่ยกระแสไฟฟ้าที่ใช้โดยมอเตอร์เหล่านี้ประมาณ 800mA @ 3.7V ในขั้นต้นเพื่อขับพวกเขาฉันใช้ไดรเวอร์มอเตอร์ L293D แต่ส่วนประกอบนี้ไม่มีประสิทธิภาพ กระแสที่วัดได้เมื่อมอเตอร์วิ่งด้วยกำลังสูงสุดประมาณ 500mA ดังนั้นแรงขับจึงต่ำกว่ามาก ตอนนี้เพื่อแก้ปัญหานี้ฉันจะแทนที่ไดรเวอร์มอเตอร์นั้นด้วย MOSFET ระดับ 4 ตรรกะ หลังจากค้นหามานานฉันก็เจออันนี้ (2SK4033) คุณรู้หรือไม่ว่าควรใช้งานได้หรือไม่ ฉันต้องใช้ร่วมกับไดโอดหรือไม่? ถ้าคำตอบคือ "ใช่" แล้วอันนี้ (MBR360RLG) ล่ะ? ฉันเลือกส่วนประกอบเหล่านี้เพราะฉันสามารถซื้อได้จากร้านค้าออนไลน์เดียวกัน

1
หนึ่งควรเปลี่ยนจากการใช้ Arduino เป็นโปรแกรมเมอร์เป็นโปรแกรมเมอร์ภายนอกได้อย่างไร
ส่วนที่สองของชุดสามส่วนที่เกี่ยวกับการเปลี่ยนจาก Arduino กับไมโครคอนโทรลเลอร์ AVR ธรรมดาและส่วนประกอบสนับสนุนขั้นต่ำ ( ส่วนหนึ่ง , ส่วนที่สาม ) ฉันเคยเห็นผู้คนมากมายถามสิ่งนี้บนอินเทอร์เน็ตดังนั้นต่อไปนี้: ผมรู้อยู่แล้วว่าวิธีการในการเขียนโปรแกรมและใช้เล่าเรื่อง ATmega328 กับ Arduino เป็นโปรแกรมเมอร์ ตอนนี้ฉันต้องการเริ่มใช้โปรแกรมเมอร์ภายนอกกับ Arduino IDE ฉันจะดำเนินการเปลี่ยนแปลงนี้อย่างไร ฉันควรเรียนรู้อะไร (มันจะดีถ้ามีการสอนแบบย่อส่วนสำหรับบางส่วนให้เป็นส่วนหนึ่งของคำตอบ)

4
AVR หน่วยความจำแฟลชเสียหาย
คำถามนี้เป็นคำถามที่เกี่ยวข้องกับAVR deprogramming ตัวเอง ข้อมูลโครงการ: เรามีผลิตภัณฑ์ที่ใช้พลังงานจากแบตเตอรี่โดยใช้ ATMEGA644P แอปพลิเคชั่นทำงานอย่างถาวรในโหมดสลีปและจะปลุกเพียงครั้งเดียวต่อวินาที (RTC) หรือเมื่อหนึ่งในสองอินเตอร์รัปต์ไลน์ถูกทริกเกอร์ อุปกรณ์มีบูทโหลดเดอร์ที่ใช้งานง่ายซึ่งสื่อสารผ่าน UART (โดยใช้อินเตอร์เฟส RS232 IC) เป็นเพียงวิธีการอำนวยความสะดวกในการอัปเดตเฟิร์มแวร์ดังนั้นจึงไม่จำเป็นต้องมีโปรแกรมเมอร์ ISP (บูตโหลดเดอร์คาดว่าจะตรวจสอบโทรเลขที่ปลอดภัย) อุปกรณ์ได้รับการออกแบบให้มีการปิดการใช้งานสีน้ำตาลภายในเนื่องจากเป็นสองเท่าของการใช้พลังงานและอายุการใช้งานแบตเตอรี่ที่ยาวนาน (ฉันเดาว่าควรใช้การตรวจจับสีน้ำตาลภายนอกภายนอก ปัญหา: ทุกๆสองสามเดือนที่อุปกรณ์หยุดทำงานไม่มีการอัพเดตเฟิร์มแวร์ในอุปกรณ์เหล่านั้น อย่างไรก็ตามหลังจากการตรวจสอบเพิ่มเติมเนื้อหาแฟลชของอุปกรณ์เหล่านั้นดูเหมือนจะเสียหาย นอกจากนี้แบตเตอรี่ของอุปกรณ์เหล่านั้นบางอย่างยังคงดี แต่ฉันไม่ต้องการแยกแยะสถานการณ์ภายใต้แรงดัน นี่คือการเปรียบเทียบเนื้อหาแฟลชต้นฉบับ (ซ้าย) กับเนื้อหาที่เสียหาย (ขวา): ข้อสังเกตบางอย่าง: บล็อกที่เสียหายประกอบด้วยอย่างน้อยหนึ่งหน้าแฟลช (256 ไบต์) และจัดเรียงหน้า กล่าวอีกนัยหนึ่ง: เฉพาะหน้าทั้งหมดที่ได้รับผลกระทบไม่ใช่ไบต์เดียว เนื้อหาที่เสียหายอ่าน 0xFF เป็นส่วนใหญ่ แต่อาจมีค่าอื่น ๆ หรือเป็น "สุ่ม" อย่างสมบูรณ์ แถบเล็ก ๆ ทางด้านซ้ายของภาพแสดงพื้นที่ที่ได้รับผลกระทบทั้งหมด สำหรับอุปกรณ์นี้ประมาณหนึ่งในสิบของเนื้อหาแฟลชทั้งหมด เรามีอุปกรณ์หนึ่งชิ้นที่มีเพียงหน้าเดียวที่ได้รับผลกระทบ เป็นไปได้อย่างมากที่สภาวะแรงดันไฟฟ้าต่ำในขณะที่เขียนหน่วยความจำแฟลชอาจทำให้เนื้อหาแฟลชเสียหาย อย่างไรก็ตามนี่หมายความว่าต้องมีการใช้งานคำแนะนำที่ละเอียดอ่อนสำหรับแฟลช …

2
คุณจะทราบได้อย่างไรว่าไมโครคอนโทรลเลอร์ตัวใหม่นั้นชำรุด
ฉันไม่เคยจัดการกับชิ้นส่วนที่มีช่องแคบชำรุดจาก digikey แต่ Atmel ATmega164A 3 ชิ้นใหม่ที่ฉันได้รับได้แสดงพฤติกรรมที่แปลกมาก ฉัน จำกัด ให้แคบลงเพื่อทำอะไรกับนาฬิกาและมันกลับกลายเป็นว่าสัญญาณนาฬิกาที่เกิดจากออสซิลเลเตอร์ภายใน "ที่ปรับเทียบจากโรงงาน" คาดว่าจะสั่นระริกระหว่าง 650-700 kHz แทนที่จะเป็นของแข็ง 1 MHz ที่ควรจะเป็น ฉันสามารถเขียนลงในไบต์การปรับเทียบเพื่อให้ใกล้เคียงกับ 1 MHz (ยังมีกระวนกระวายใจ) และสิ่งต่าง ๆ ส่วนใหญ่ทำงาน แต่ UART ไม่ทำงานอย่างถูกต้องพวกเขาดูเหมือนจะส่งกระแสพัลส์สั้นต่อเนื่องไม่ว่า คุณขอให้พวกเขาทำอะไร ฉันจัดการกับไมโครคอนโทรลเลอร์รุ่นก่อนหน้านี้ที่ใช้พลังงานต่ำ (164P) โดยไม่มีปัญหาและตัดสินใจที่จะวางมันลงและตรวจสอบสัญญาณนาฬิกาบนนั้น ฉันเอนตัวไปสู่ข้อสรุปว่าชิป 164A เหล่านี้มีข้อบกพร่อง แต่จะมีการทดสอบอื่น ๆ ที่ฉันสามารถลองยืนยันได้หรือไม่ แก้ไข:แค่คิดว่าฉันอธิบายกระบวนการที่ฉันวัดนาฬิกา ฉันเปิดการใช้งานบิตเอาท์พุทนาฬิกาฟิวส์และวัดพินที่เหมาะสมด้วยการสุ่มตัวอย่างวิเคราะห์เชิงตรรกะในอัตราที่สูงมาก ฉันมีโปรแกรมที่เขียนลงทะเบียนสอบเทียบOSCCALและฉันสามารถลองผิดลองถูกที่ 1 MHz แก้ไข # 2:หลังจากการตรวจสอบเพิ่มเติมปรากฏว่าไมโครคอนโทรลเลอร์เริ่มทำงานหลังจากขนาดโปรแกรมที่แน่นอนธรณีประตู โครงการกระดูกเปลือยที่มีไฟล์แหล่งเดียวกระพริบ LED ดูเหมือนว่าจะตกลง แต่การรวบรวมและการเชื่อมโยงในไฟล์อื่น …

2
จะทำอย่างไรกับอินพุตอนาล็อกที่ไม่ได้ใช้?
ฉันกำลังทำงานกับแอปพลิเคชันที่ใช้ไมโครคอนโทรลเลอร์ ATmega328p atmel ฉันเริ่มด้วยรุ่น PDIP 28 แต่ตอนนี้ฉันต้องการใช้ 32 TQFP ซึ่งฉันสังเกตเห็นว่ามีอินพุตเพิ่มอีก 2 รายการหลังจากรวบรวมโครงการ Altium ของฉัน อินพุตเหล่านี้คือ ADC7: 6 ซึ่ง "ทำหน้าที่เป็นอินพุตแบบอะนาล็อกไปยังตัวแปลง A / D พินเหล่านี้ใช้พลังงานจากแหล่งจ่ายอะนาล็อกและทำหน้าที่เป็นแชนเนล ADC 10 บิต" ตามแผ่นข้อมูล ฉันได้อ่านออนไลน์ว่าบางคนได้ผลลัพธ์ที่ไม่รู้จักเมื่อพวกเขาใช้ ADC และมีอินพุตแบบลอย สิ่งที่ฉันอ่านพวกเขาทำคือเปิดใช้งานตัวต้านทานแบบเลื่อนลง แต่ฉันไม่เห็นวิธีกำหนดค่า (เนื่องจากพวกเขาไม่ได้อยู่ในพอร์ต I / O) แอปพลิเคชันของฉันไม่ได้ใช้ตัวแปลง A / D เลย อะไรคือการปฏิบัติที่ดีที่สุด? ฉันควรเชื่อมต่อตัวต้านทานแบบดึงลงภายนอกหรือไม่ ละเว้นข้อผิดพลาด Altium หรือไม่

3
การใช้งานที่ถูกต้องของการขัดจังหวะการเปลี่ยนพิน
ฉันกำลังพยายามใช้การขัดจังหวะการเปลี่ยนพินเพื่อตรวจจับปุ่มกด จนถึงตอนนี้ฉันไม่เคยทำงานกับการขัดจังหวะแบบนี้และมีปัญหาบางอย่างดังนั้นฉันจึงต้องการตรวจสอบให้แน่ใจว่านี่เป็นการใช้งานที่ถูกต้องหรือไม่ หากฉันได้รับแผ่นข้อมูลถูกต้องสิ่งต่อไปนี้จะต้องทำเพื่อใช้ขัดจังหวะการเปลี่ยนพิน: ตั้งค่า PIN ใดที่คุณต้องการควบคุมในการลงทะเบียน PCMSK เปิดใช้งานการลงทะเบียน PIN สำหรับการเปลี่ยนการควบคุมการขัดจังหวะพิน (PCICR) เปิดใช้งานการขัดจังหวะ ใช้เวกเตอร์ขัดจังหวะที่สอดคล้องกัน โครงการ: Simple Moodlamp, ควบคุมสีด้วยปุ่ม 4 ปุ่ม ติดตั้ง: Atmega168A-PU สวิตช์ปุ่มกดขนาดเล็ก 4 ปุ่ม MOSFETS เพื่อควบคุมไฟ LED RGB 3 วัตต์ของฉัน นี่คือรหัสที่ฉันใช้ซึ่งใช้งานไม่ได้ตามที่คาดไว้: #include <avr/io.h> #include <stdint.h> #include <avr/interrupt.h> #include <util/delay.h> #define BUTTON1 (1<<PC5) #define BUTTON2 (1<<PC4) #define BUTTON3 (1<<PC3) #define BUTTON4 …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.