Questions tagged «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 TIMSK1 = …

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: 4a 4b 4c 00 JKL. 因此很明显,指针和PROGMEM导致字符串/数组未初始化。 为什么是这样? 示例代码: #include <avr/pgmspace.h> …
11 progmem  pointer 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.