标签: microcontroller

Python:编程 8051

我可以使用 Python 编写 8051 吗?

我没有得到任何在 python 环境中编程 8051 的东西。

如果有人知道,请帮助我。

python microcontroller low-level 8051

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

dspic 33 - 看门狗定时器

您好,我想知道是否有一种方法可以在微芯片的 dspic33 中实现看门狗定时器,而无需配置位,但只能在源代码本身中实现,谢谢 eran

microcontroller microchip pic

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

Atmel 微控制器:UBRR0H 和 UBRRnH 之间的区别

所以我正在阅读有关 Atmel 328p 编程的内容,我希望能够对串行输入和输出进行编程,但我看到了一些我没有完全理解的内容:

  • UBRR0H 在此汇编代码中称为 UBRRnH:

    USART_Init:
        ; Set baud rate
        out UBRRnH, r17
        out UBRRnL, r16
        ; Enable receiver and transmitter
        ldi r16, (1<<RXENn)|(1<<TXENn)
        out UCSRnB,r16
        ; Set frame format: 8data, 2stop bit
        ldi r16, (1<<USBSn)|(3<<UCSZn0)
        out UCSRnC,r16
        ret
    
    Run Code Online (Sandbox Code Playgroud)
  • 虽然在此 C 代码中它仍保留名称 UBRR0H:

    #define FOSC 1843200 // Clock Speed
    #define BAUD 9600
    #define MYUBRR FOSC/16/BAUD-1
    void main( void ) {
        ...
        USART_Init(MYUBRR)
        ...
    }
    
    void USART_Init( unsigned int ubrr) {
        /*Set baud rate */
        UBRR0H = (unsigned char)(ubrr>>8); …
    Run Code Online (Sandbox Code Playgroud)

c microcontroller assembly arduino atmel

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

如何在 C/C++ 中实现过程调节器?

问题很简单,我不知道在哪里以及如何实现传递函数。

假设我有一个经典系统

在此处输入图片说明

其中 P 具有二阶传递函数,zita=0.7,F=1,C 是过程调节器。

我想在 C 或 C++ 中的像 ATMega128P 这样的控制器上实现这个调节器。

过程的传递函数是通过实验方法确定的,调节器可能会根据过程传递函数而变化。

我应该从哪里开始?

c microcontroller transfer-function

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

嵌入式C中的驱动程序和库之间有什么区别

我想知道嵌入式 C 编程中的驱动程序和库之间有什么区别。假设我使用的 uControllers 只有像 PIC 这样的应用程序代码/固件

c embedded microcontroller

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

我可以为 stm32f051 制作自定义引导加载程序吗

我是这个引导加载程序的新手。我使用 SWD 对 stm3205 进行编程。所以当我对 stm32f05 微控制器进行编程时,我的程序在哪个位置。我可以制作自己的引导加载程序并将其替换为 st 的默认引导加载程序吗?

microcontroller stm32 bootloader

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

PIC16f877a 微控制器是否遵循小端字节排序系统?

我已经在 XC8 编译器上编译了这个简单的代码,并将十六进制文件加载到 Picsimlab - 具有 PIC16f877a 微控制器的模拟器板(板 4)。

    unsigned int x = 1;
    char *ptr = (char *) &x;

    if (*ptr == 1)
    {

        clcd_print("little Endian", LINE1(0));
    }
    else
    {
        clcd_print("big Endian", LINE1(0));
    } 
Run Code Online (Sandbox Code Playgroud)

输出:小端

那么我们可以推论Xc8编译器遵循小端字节序系统来编程PIC16f877a吗?
这是否也意味着 PIC16f877a 使用小端字节序系统将变量存储到其数据存储器中?

您能否提供指向有关字节排序系统的文档的链接,然后是 PIC16f877a 和 XC8 编译器?

c microcontroller endianness pic xc8

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

当我访问微控制器中的内存值时,为什么它指向我的数据值的末尾?

我试图在我的微控制器中的内存地址处获取 的值。地址是 at 0x1fff7000,那是内存块的开始(所以之前的任何东西都是未定义的)。在我的代码中,我有char *ptr = (char *)BASE_ADDR;where #define BASE_ADDR ((uint32_t)0x1FFF7000)。我的价值0x1FFF70000x12345678,我 100% 知道它在那里。

在 GDB 中,我正在做(gdb) p/x *ptr,我的返回值是$6 = 0x78. 为什么它在0x78而不返回0x12345678甚至不返回0x12

c memory microcontroller memory-leaks stm32

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

有没有比使用 sprintf 将浮点数格式化为字符串更节省空间的方法?

我正在为微控制器开发 C 代码,该代码从传感器获取输入并在字母数字字符 LCD 上输出来自传感器的数据以及其他字符串。我通常为此使用 sprintf,但我注意到当使用 sprintf 将浮点数格式化为字符串时,它占用了太多的程序内存空间,这在微控制器上是相当低的。(太多我的意思是从程序内存的 34% 直接跳到 99.2%)

所以我的问题是,是否有一种占用空间较少的方法来将浮点数格式化为字符串?我只关心方法有多简单。

我在 PIC16F877a 8 位 MCU 上使用带有 XC8 编译器的 MPLABX IDE。

非常感谢。

c microcontroller printf

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

这个功能有什么问题?不可转让?

float tempC(unsigned int adc_value) {
    multiplier = adc_value / 1023.0f;
    tempC = -40 * multiplier * 90;
    return tempC;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用微控制器上的 ADC 将电位计转换为 -40 到 50 摄氏度之间的温度,这adc_value是 ADC 给出的范围,但是我得到了错误:

Main.c:110:11: 错误:非对象类型 'float (unsigned int)' 不可分配

如果需要,我可以提供更多代码,但我不知道哪里出错了,因为我对 C 和编程还很陌生。

c microcontroller

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