gpt4 book ai didi

c - 是否可以在HI-TECH C中为PIC12 MCU创建多线程程序

转载 作者:行者123 更新时间:2023-12-03 12:49:47 24 4
gpt4 key购买 nike

我的 friend 要我帮助他为PIC12 MCU编写一个小程序。我们想要

  • 当输入电压在2秒钟内小于1.9V时,程序停止运行。
  • 当输入电压超过2.5V时,程序将立即作出 react 。

  • 我尝试通过阅读和比较系统的时间戳来解决第一个问题:
    #include <time.h>
    ... ...
    time_t beg, end;
    beg = 0;
    end = 0;
    while(1){
    if(INP_VOL < 1.9){
    if(beg == 0){
    /* Read timestamp when voltage < 1.9 */
    gmtime(&beg);
    }
    /* Campare timestamp */
    gmtime(&end);
    if(end - beg > 2){
    break; /* !!stop running!! */
    }
    }
    else{
    /* if voltage back to normal, reset beg timestamp. */
    beg = 0;
    }
    }

    我已经在《 PIC12用户手册》中找到了 gmtime(time_t *)函数,但是我不确定它是否是一个好的解决方案。

    但是我不知道如何解决第二个问题。它应该是一种独立的线程,可以在程序执行期间监视输入电压。并且程序应在电路损坏之前立即使用react(通过调用其他函数)。

    我是计算机程序员,但从未为MCU编码。我想知道是否可以在HI-TECH C中做这样的事情?

    最佳答案

    这里要做的典型事情是使用interrupts,特别是定时器中断。

    您设置了一个中断来运行例如每1毫秒一次,在该中断代码中,您可以执行程序需要快速响应的所有操作。剩下的就是正常的执行流程,并模拟了这两个任务是并行完成的。

    关于c - 是否可以在HI-TECH C中为PIC12 MCU创建多线程程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9162951/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com