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

2
เหตุใดฉันจึงไม่สามารถประกาศคลาสในแท็บอื่นใน Arduino IDE ได้
ฉันต้องการย้ายโค้ดของฉันออกเป็นแท็บที่สองใน Arduino IDE เพื่อให้การจัดระเบียบดีขึ้น ตอนแรกฉันแค่ลองขยับฟังก์ชั่นเท่านั้นและมันก็ใช้ได้ดี ฉันสามารถเรียกใช้ฟังก์ชั่นจากsetup()ฟังก์ชั่นในแท็บหลักของฉันและไม่มีปัญหาในการรวบรวมหรืออัพโหลด อย่างไรก็ตามฉันพยายามใส่ทั้งคลาสลงในแท็บที่สองและทันใดนั้นมันก็ไม่ทำงานอีกต่อไป ตัวอย่างเช่น: แท็บ 1: TestClass obj; void setup() { obj.init(); } void loop() { //... } แท็บ 2: class TestClass { public: void init() { //... } }; เมื่อฉันพยายามรวบรวมสิ่งนี้มันทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้: tab1:1: error: 'TestClass' does not name a type tab1.ino: In function 'void setup()': tab1:5: error: …

5
วิธีการรวบรวมอัพโหลดและตรวจสอบผ่านทางบรรทัดคำสั่ง Linux?
การเชื่อมต่อ Arduino Uno (การอัพโหลด ฯลฯ ) กับ Arduino IDE (โดยใช้แพ็คเกจ Fedora) ทำงานได้ดีภายใต้ Fedora 21 แต่ฉันอยากจะใช้ vim + make + vim-quickfix-mode ฯลฯ ฉันจะทำสิ่งนั้นได้อย่างไร ควรใช้เครื่องมือที่มีอยู่ในคลังเก็บ Fedora ฉันคิดว่า IDE เรียกโปรแกรมอรรถประโยชน์บรรทัดคำสั่ง externals สำหรับการอัปโหลด ฯลฯ เทียบเท่ากับมอนิเตอร์อนุกรมของ IDE อาจเชื่อมต่อเทอร์มินัลอีมูเลเตอร์ (เช่นscreen) ไป/dev/ttyACM0ใช่ไหม? อาจมีตัวอย่างโครงการที่ดีที่เราสามารถดู makefile ได้?
19 compile 

2
คำเตือนเมื่อยืนยันภาพร่างด้วยรหัส VS
ฉันใช้ Visual Studio Code เพื่อพัฒนาสำหรับ arduino ซึ่งใช้ไฟล์ที่ติดตั้ง Arduino Studio และจำเป็นต้องติดตั้งให้ทำงาน มันใช้งานได้ดีมาก น่ารำคาญคือเมื่อตรวจสอบร่างมันใช้เวลานานกว่าใน Arduino IDE ฉันสงสัยว่าคำเตือนต่อไปนี้จะทำให้: [คำเตือน] ไม่ได้ระบุเส้นทางเอาท์พุท ไม่สามารถใช้ไฟล์ที่รวบรวมมาก่อนหน้านี้ได้ ตรวจสอบอาจช้า ดู README ฉันต้องการกำจัดคำเตือนและค้นหาไฟล์ README ทั้งหมดในโฟลเดอร์การติดตั้ง arduino และฉันค้นหา google แต่ไม่พบว่ามันควรจะมีความหมายและวิธีการแก้ไขอย่างไร ไม่มีไฟล์ readme ระบุว่าหรือฉันมองข้าม มีเอกสารเกี่ยวกับวิธีแก้ไขปัญหานี้ทุกที่หรือไม่?
18 compile  ide 

1
Arduino IDE #ifdef
ฉันใช้ Arduino IDE ของฉันเพื่ออัปโหลดภาพร่างของฉันไปยัง Arduino หรือ ATTiny หรือ ATmega328 ดังที่คุณทราบว่าอุปกรณ์แต่ละเครื่องสามารถมี pinout ที่แตกต่างกัน คอมไพเลอร์ Arduino รองรับifdefหรือไม่ขึ้นอยู่กับบอร์ดที่ฉันเชื่อมต่ออยู่หรือไม่? ตัวอย่างเช่น #ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif

1
มีค่าคงที่ตัวประมวลผลล่วงหน้าสำหรับขนาดหน่วยความจำหรือไม่
ฉันต้องการคอมไพล์ของฉันเพื่อแยกรหัสบางอย่างขึ้นอยู่กับพื้นที่แฟลช / โปรแกรมที่มีอยู่ เพื่อใช้ในโค้ดตัวอย่างของไลบรารีที่ฉันสนับสนุน ในขณะที่โซลูชันปัจจุบันของฉันคือใช้ #ifdef ของประเภทโปรเซสเซอร์ แต่ฉันต้องการที่จะเป็นทั่วไปและไม่ต้องระบุชิปต่างๆทั้งหมด ค่อนข้างจะดีถ้ามีค่าคงที่ pre-processor ที่ระบุขนาดที่พร้อมใช้งาน ที่ฉันไม่คล่องพอใน gcc และหรือ avr-gcc ฉันอาจคาดหวังว่าจะพบค่าคงที่บางอย่างที่คล้ายกันที่กำหนดจุดเริ่มต้นและจุดสิ้นสุดของกอง ในกรณีตัวอย่าง คือทั้ง UNO และ Leo มี Flash 32K แต่ไลบรารี่หลักของ Leo ใช้ 4K สำหรับการรองรับ USB ทำให้มีเพียง 28K เท่านั้น การสาธิตห้องสมุดของฉันใกล้ถึงขีด จำกัด สูงสุดของ UNO และฉันต้องการตัดออกโดยอัตโนมัติตามพื้นที่ว่างของโปรแกรมที่มีอยู่

4
เหตุใดร่างจึงใช้พื้นที่และหน่วยความจำมาก
เมื่อฉันรวบรวมร่างนี้สำหรับYún: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } ฉันเข้าใจ: Sketch ใช้พื้นที่เก็บข้อมูลโปรแกรม 5,098 ไบต์ (17%) สูงสุดคือ 28,672 ไบต์ ตัวแปรกลางใช้ 153 ไบต์ (5%) ของหน่วยความจำแบบไดนามิกเหลือ 2,407 ไบต์สำหรับตัวแปรท้องถิ่น สูงสุดคือ 2,560 ไบต์ แม้ว่าฉันจะรวบรวมร่าง BareMinimum: void setup() { // setup } void loop() { // loop } …

2
Arduino Sketch จะรวบรวมโดยตรงกับ GCC-AVR หรือไม่
เอาล่ะเราทุกคนได้เห็นคำถามเหล่านั้นทั่วทั้งเว็บเช่น Arduino vs C ++ หรือคำถามที่คล้ายกันอื่น ๆ และคำตอบส่วนใหญ่ไม่ได้สัมผัสความแตกต่างในการรวบรวมนอกเหนือจากข้อมูลที่เป็นนามธรรม คำถามของฉันมีจุดมุ่งหมายเพื่อแก้ไขความแตกต่างที่เกิดขึ้นจริง (ไม่ใช่การกำหนดค่าตามความชอบ) ในการเปลี่ยนชื่อไฟล์. ori เป็นไฟล์. cpp หรือนามสกุลไฟล์อื่น ๆ ที่คล้ายกันสำหรับ c ++ จะรวบรวมโดยใช้ GCC-AVR ฉันรู้ว่าอย่างน้อยคุณต้องรวมไฟล์ส่วนหัวของ Arduino แต่นอกเหนือจากนั้นสิ่งที่จะทำให้เกิดข้อผิดพลาดในการรวบรวมถ้ารวบรวมกล่าวว่า. ini ไปยังไฟล์. cpp โดยใช้พูดเช่น GCC-AVR เพื่อความเรียบง่ายลองใช้ตัวอย่างการกะพริบแบบคลาสสิคเพื่ออธิบายความแตกต่าง หรือหากคุณมีข้อมูลโค้ดที่ดีกว่าในการใช้โปรดรวมตัวอย่างไว้ในคำตอบและอธิบายความแตกต่างอย่างละเอียด โปรดอย่าแสดงความคิดเห็นว่าวิธีใดเป็นวิธีที่ดีกว่าหรือเครื่องมือที่จะใช้ FYI ฉันใช้ Platformio เพื่อการพัฒนาและฉันสังเกตเห็นกระบวนการแปลงที่เกิดขึ้นเบื้องหลังในระหว่างการรวบรวม ฉันพยายามเข้าใจสิ่งที่เกิดขึ้นจริงที่นั่นดังนั้นเมื่อฉันรหัสใน Arduino ฉันเข้าใจรุ่น C ++ ที่ "บริสุทธิ์" เช่นกัน ขอบคุณสำหรับคำตอบที่รอบคอบของคุณสำหรับคำถามของฉันล่วงหน้า

1
การตั้งค่า timer3 ในโหมด CTC - ขัดแย้งกับไลบรารีเซอร์โว
ฉันต้องการตั้งค่าตัวจับเวลาเพื่อเรียกใช้ฟังก์ชัน 800 ครั้งต่อวินาที ฉันใช้ Arduino Mega และ Timer3 กับ prescaler ที่ 1024 เพื่อเลือกตัวประกอบ prescaler ที่ฉันได้พิจารณาขั้นตอนต่อไปนี้: CPU ความถี่: 16MHz ความละเอียดตัวจับเวลา: 65536 (16 บิต) ความถี่แบ่ง CPU โดย prescaler เลือก: 16x10 ^ 6/ 1024 = 15625 แบ่งส่วนที่เหลือผ่านความถี่ที่ต้องการ 62500/800 = 19 ใส่ผลลัพธ์ + 1 ในการลงทะเบียน OCR3 ฉันใช้ตารางต่อไปนี้เพื่อตั้งค่าการลงทะเบียนของ TCCR3B: ข้อผิดพลาด ไม่สามารถคอมไพล์โค้ดได้ นี่เป็นข้อผิดพลาดที่คอมไพเลอร์ส่งคืน: Servo \ Servo.cpp.o: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.