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

2
ฟังก์ชั่นการกำหนดตัวชี้อะตอมใน Arduino?
ตัวอย่างต่อไปนี้มาจากซอร์สโค้ดของ TimerOne : // TimerOne.h: void (*isrCallback)(); // TimerOne.cpp: ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { Timer1.isrCallback(); } // TimerOne.cpp: void TimerOne::attachInterrupt(void (*isr)(), long microseconds) { if(microseconds > 0) setPeriod(microseconds); isrCallback = isr; // register the user's callback with the real ISR …

2
ทำไมฉันไม่สามารถใช้พอยน์เตอร์แทนการใช้อาเรย์กับ PROGMEM ได้?
ขณะนี้ฉันกำลังเปลี่ยนห้องสมุดบางแห่งให้ใช้แฟลชแทน RAM สำหรับการจัดเก็บสตริงเพื่อที่ฉันจะไม่หมด SRAM ในโครงการ สตริงบางตัวในไลบรารีถูกประกาศในลักษณะนี้: const char *testStringA = "ABC"; สิ่งนี้ต่างจากวิธีที่ฉันเห็นสิ่งนี้ตามปกติ: const char testStringB[] = "DEF"; อย่างไรก็ตามฉันคิดว่าทั้งสองนี้เท่ากันเมื่อประกาศ const และเริ่มต้นในการประกาศ ทำงานได้ดีทั้งในรหัส ฉันพยายามย้ายสิ่งเหล่านี้ไปยังแฟลช: const prog_char *testStringC PROGMEM = "GHI"; ฉันพบว่ามันใช้งานไม่ได้ มันกำลังผลิต gobbledegook เมื่อพิมพ์ อย่างไรก็ตามทำตามรูปแบบปกติของ: const prog_char testStringD[] PROGMEM = "JKL"; ทำงานได้ดี ฉันสามารถดูได้ในการถอด: 00000068 <testStringC>: 68: 04 01 .. 0000006a <_ZL11testStringD>: 6a: …
11 progmem  pointer 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.