标签: microcontroller

如何找到微控制器是大端还是小端?

如何找到微控制器是大端还是小端?

没有微控制器规范,如何知道控制器是Big endian还是Little Endian?

microcontroller

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

Arduino中断替代方案

从我读到的,我的问题的解决方案是使用中断,但如果我正确理解它,我不能在中断调用的例程中使用延迟.我有一个大按钮LED开关.我希望它在闲置时有一个心跳,但一旦它被按下,保持绿色并执行代码.

heartbeat()如果我按下按钮足够的次数,我可以打破(我假设在正确的时间完成状态更改,因为它完成了循环heartbeat),但我仍然坚持如何使它在第一次点击时工作.有没有其他方法来做我正在尝试的事情?

void loop(){

heartbeat();                                    //Make LED beat.
buttonVal = digitalRead(buttonPin);             //Check the button.
    if (buttonVal != buttonState) {               //If the button state changed.
        if (buttonVal == HIGH){                   //Check if the button is pressed.
            analogWrite(greenPin, 255);         //Button stays green once pushed.
            functionA                           //Has some delays in it.
            functionB                           //Has some other delays.
        }
    }
}

void heartbeat(){
    for(i = 0; i < pmw; i++) {
        analogWrite(greenPin,i);
        delay(((60000/rate)*.1)/pmw);
    }

    for (i = pmw; i > 0; …
Run Code Online (Sandbox Code Playgroud)

c embedded microcontroller arduino interrupt

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

如何将两个Bytes数组转换为unsigned long变量?

我想将两个字节组合成一个无符号长变量,我当前的代码不起作用.我使用的是MPLAB C18编译器,这是我的代码.

    unsigned long red = 0;
    BYTE t[2];


    t[0]  = 0x12;
    t[1]  = 0x33;

    red = 100 * t[0] + t[1];
    printf("%lu", red);
Run Code Online (Sandbox Code Playgroud)

请让我知道为什么我没有得到1233作为我的输出.

c microcontroller pic mplab

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

系统指令工作

我正在尝试使用用户级指令实现一个简单的RISC-V 32位内核.

在尝试实现ISA时,我在列表中找到了一条指令(系统).任何人都可以解释系统指令的工作(管道中会有哪些变化).

microcontroller computer-architecture riscv

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

如何为使用不同参数调用的给定函数实现单独的静态变量

我目前正在研究C中的微控制器项目,该项目需要进行多个定时功能.我使用硬件定时器每毫秒产生一个中断,变量作为计数器产生适当的时间间隔.硬件细节并不重要.

例如,对于特定函数,将在1ms计数器的每个滴答上执行以下代码,从而导致每10ms调用一次Function().

if (count < 10)
{
    count++;
}
else
{
    Function();
    count = 0;
}
Run Code Online (Sandbox Code Playgroud)

我想实现一个包装函数,以避免为每个不同的时间间隔重写计数器代码,即:

TimerWrapper(required interval 1, Function 1 pointer)
TimerWrapper(required interval 2, Function 2 pointer)
Run Code Online (Sandbox Code Playgroud)

并在计时器的每个刻度上调用它.为了实现这一点,包装器调用的每个不同函数都需要有一个单独的计数变量,需要在TimerWrapper()的调用之间保持不变.我想将所有实现细节与我的主程序分开,并尽可能少地将变量引入我的主程序.

有可能做我要问的事情,还是有更简单/更好的方法来达到同样的效果?我知道如何用面向对象的语言做到这一点但我的技能缺乏简单的C.

c microcontroller pic

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

如何在if条件中声明将C三元语句转换为if/else?

因此,在查看大规模的互联网后,我无法找到答案.

说我有这段代码:

if(P4IN & GPIO_PIN1?0:1){
        if (state==1){
            state = 0;
            //Wait for this state to pass -- ends up saving the current state on button press.
            while (counter < 10000){
                counter++;
            }
        }
        else{
            state = 1;
            while (counter < 10000){
                counter++;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我怎么会重写这个,所以if(P4IN & GPIO_PIN1?0:1)不是这样写的.我不介意创建额外的if/else条件或扩展此代码块(用于MSP432)

谢谢你的时间.

c microcontroller if-statement ternary-operator

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

人们为什么不仅仅使用微控制器中的最大可用时钟

这个话题很简单,我承认我在Google上找不到很多东西。

最近,我开始在STM32上进行编码,对于一个来自与PC相关的应用程序的人来说,设置所有时钟都是相当新的。

我想知道为什么开发人员会想放弃/避免最大时钟,在哪种情况下?假设微控制器可以在168Mhz上工作,为什么我应该选择84Mhz?

它主要与功耗有关吗?还有其他原因吗?

为什么STM32团队(以及我猜想也是微芯片)要在STM32CubeMX上设置一个非常好的UI来选择不同的组合而麻烦?如果我可以达到更高的工作频率,为什么我应该直接使用外部振荡器而不是PLL路径?

microcontroller clock stm32

0
推荐指数
3
解决办法
828
查看次数

微控制器编程 - 程序不退出for循环

我的面包板上有一个简单的PIC16F18877电路设置,我已成功获得一个LED在无限while循环内闪烁.我试图将相同的代码放在一个for只应执行5次的循环中,但LED会一直闪烁.

我的代码(带XC8编译器的MPLAB):

#include <xc.h>

#define _XTAL_FREQ 8000000

int main()
{
    TRISD1 = 0;

    for (int i = 0; i < 5; i++)
    {
        RD1 = 1;
        __delay_ms(500);
        RD1 = 0;
        __delay_ms(500);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c microcontroller for-loop pic mplab

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

微控制器和外部闪存之间的连接

我在我的项目中使用stm32f2xx系列控制器.我想知道在没有对外部闪存进行任何读/写操作的情况下是否将外部闪存连接到微控制器.那可能吗?

如果是,请解释这样做的方法.

如果重要,控制器和外部闪存之间的通信是SPI.

提前致谢.

microcontroller flash-memory

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

AVR XYZ寄存器

AVR微控制器中的Beatwean X,Y和Z寄存器有什么区别。它们每个适合C编译器?编译器在哪里存储堆指针,堆栈指针,帧指针?该寄存器是否具有相同的功能或在不同的空间(例如EEPROM,RAM)中提供寻址。

compiler-construction ram microcontroller avr

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