小编Dan*_*Dan的帖子

通过Return vs传递指针获取数据

int get1(void) { return test; }
void get2(int* arg) { *arg = test;}

static int test = 5;

int main()
{
int result = 0;

result = get1();

get2(&result);

}
Run Code Online (Sandbox Code Playgroud)

get1()vs get2() - 哪一个对嵌入式系统表现更好?

c embedded performance

1
推荐指数
1
解决办法
217
查看次数

如何从ARM Cortex-M3上的中断处理程序中重新启用中断?

背景:
我使用的是没有操作系统的cortex-M3 ARM内核.

我的主循环等待来自中断处理程序的标志然后执行一个函数doBigTask().

在一个单独的中断处理程序中,我想执行另一个函数doSmallTask(),但由于这个函数也非常重要,我仍然希望处理其他与I/O相关的中断.

我的问题:
从内部简单地启用中断是否存在任何问题doSmallTask()?例如,在中断已经被禁用后退出中断处理程序是否有任何复杂性?

注意:我不希望发生重入中断,因为doSmallTask()在下一个中断触发它之前就会完成.

int flag = 0;

void doSmallTask()
{
   asm volatile ("cpsie i");  // Enable interrupts
   // do rest of function
   // ...
}

void irqHandler1()
{
   flag = 1;
}

void irqHandler2()
{
  doSmallTask();
}

void irqHandler3()
{
  // service I/O
}

int main()
{
  while(1)
    if (flag)
    {
      doBigTask();
      flag = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

embedded arm interrupt cortex-m3

1
推荐指数
1
解决办法
2042
查看次数

为什么我的PIC没有闪烁它的LED?

我正在尝试开始使用pic24,特别是PIC24FJ64GA002,我已经在寄存器中看了数据表和诸如此类的东西,但我仍然无法让它眨眼LED.当我通过调试运行它时它运行正常,但是当我尝试在pic上实际运行它时,它似乎根本不运行.

我正在使用一个外部振荡器,一个8MHZ振荡器,专门连接到引脚9(OSCI)和10(OSCO).编译器是Mplab中的C30.

数据表链接是:http://ww1.microchip.com/downloads/en/DeviceDoc/39881D.pdf

代码如下

//include basic header definition
#include <p24FJ64GA002.h>

//config
_CONFIG2(0x0200);
_CONFIG1(0x0800);

int i;

//main loop
int main(void)
{

   OSCCON = 0x2280;  //select external OSC, no PLL
   AD1PCFG      = 0xFFFF;  //set to all digital I/O
   TRISA = 0x0000;  //configure all PortA as output

   while(1)    //Loop forever
   {
  LATAbits.LATA0 = 1; //RA0 = 1
  Wait();
  LATAbits.LATA0 = 1; //RA0 = 1
  Wait(); 
   }

}


int Wait(void) // gives me a nice delay of 1/3rd a second or …
Run Code Online (Sandbox Code Playgroud)

c++ embedded microchip pic

0
推荐指数
1
解决办法
1945
查看次数

方式验证gmail的HTML代码?

我得到了一些自动生成的HMLT代码.确保它被http://validator.w3.org/正确解析,并且它是一个有效的HTML4.01 Strict.

现在,当我将此代码嵌入到电子邮件中并将其发送到gmail时,结果非常不利(弄乱了格式化).

代码很长,显然只有在它有这么大的时候才会发生.这告诉我两件事:

  • 不值得在这里放一个代码片段
  • 它可能是一些冲突的标记,但仍被认为是有效的解析器

您是否知道任何更严格的工具来验证我的HTML?甚至可能是特定于gmail的东西?

或者,也许,只是一些专业提示通常会搞砸gmail的代码.

ps.:代码虽然很长,但也很简单,只有几个表格和样式 - 我确保只使用"电子邮件友好"标签和格式.

html css gmail

0
推荐指数
1
解决办法
2544
查看次数

标签 统计

embedded ×3

arm ×1

c ×1

c++ ×1

cortex-m3 ×1

css ×1

gmail ×1

html ×1

interrupt ×1

microchip ×1

performance ×1

pic ×1