我将开始一个项目,我需要对PIC单片机的汇编语言有一个很好的理解.我非常熟悉C/C++,所以我知道如何编写代码,我已经为PIC做了很多项目,所以我理解了这个架构,但是在'C'中完成了我的所有编程.
是否有一本好书或网站能够很好地解释所有汇编命令的含义以及如何为PIc微控制器执行相当简单的任务(闪烁LED,基本数学等等)?
编辑:这篇文章的主要目的是请求学习汇编的资源,而不是在PIC中讨论C与汇编的优点,或者PIC是否是一个"好"的微控制器.我使用的是PIC18单片机,如果这有任何区别的话.
微控制器有什么特殊的C标准吗?
我问,因为到目前为止,当我在Windows操作系统下编程时,我使用的编译器并不重要.如果我有一个C99的编译器,我知道我能用它做什么.
但是最近我开始用C编程用于微控制器,我感到震惊,即使它仍然是C的基础知识,比如循环,变量创建等等,有一些我从未在C中用于台式计算机的语法类型.此外,语法正在从版本变为版本.我使用AVR-GCC编译器,在以前的版本中,您使用了一个端口I/O函数,现在您可以在新版本中处理类似变量的端口.
是什么定义了什么函数以及如何将它们实现到编译器中并且仍将它称为C?
我想从我的电脑通过USB控制RC模型.我不需要真正的无线电控制,因此通过电缆直接控制伺服系统是足够的(是的,模型和控制单元之间会有电缆).我想我会构建一些基于微控制器的设备,它将通过USB连接到计算机,并且伺服器将连接到该设备.
我要求提示我应该从哪里开始.我知道伺服系统是如何控制的,我最终应该如何编程微控制器以控制伺服系统,但我真正不太了解的是USB通信既不在设备端也不在计算机端(将是Linux).
我想在C中进行编程(可能是微控制器的汇编程序).
谢谢你的每一个提示.
内存地址寄存器(MAR)和程序计数器(PC)如何相互不同?
有了大量的微控制器,甚至不同级别的arduinos提供比上一个更多的功能,是否有一种数学方式或某种方式来了解您需要多少处理能力,只需通过分析,运行您的程序设计为了选择合适的微型?
没有反复试验.即不只是尝试它,如果太慢,购买下一个芯片.
我正在通过stm研究STM32l151rct6a,我偶然发现了这些MACRO定义
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
Run Code Online (Sandbox Code Playgroud)
有谁知道他们的意思?
我认为许多Arduino/AVR MCU的程序员可以分享一些知识.
我的具体问题是:
在Atmel Atmega128 AVR的情况下.
基于ADC数据,我正在运行一个循环,它正在对串行控制台进行一些计算,它也驱动了一个中断.
发生的事情是,当我使用一定数量的串行输出时,程序突然变得非常不稳定.
代码中的随机跳转,随机未知中断,随机变量损坏,无MCU寄存器位设置的随机复位.
在特定点添加缓冲区解决了不稳定性.
更改gcc的优化参数也改变了行为,没有优化,代码非常稳定.
检查我的答案可能的原因和真正的原因.
我正在用C编写一个小型8位微控制器的软件.部分代码是读取电流互感器(ZCT)的ADC值,然后计算RMS值.流过ZCT的电流是正弦曲线但可能会失真.我的代码如下:
float adc_value, inst_current;
float acc_load_current; // accumulator = (I1*I1 + I2*I2 + ... + In*In)
double rms_current;
// Calculate the real instantanous value from the ADC reading
inst_current = (adc_value/1024)*2.5; // 10bit ADC, Voltage ref. 2.5V, so formula is: x=(adc/1024)*2.5V
// Update the RMS value with the new instananous value:
// Substract 1 sample from the accumulator (sample size is 512, so divide accumulator by 512 and substract it from the accumulator)
acc_load_current -= (acc_load_current / 512);
inst_current *= …Run Code Online (Sandbox Code Playgroud) Microchip定义了一种通过蓝牙低功耗(BLE)传输数据的方法,并称之为MLDP(Microchip低能量数据配置文件).他们将它构建到他们的RN4020芯片中,甚至还有一个示例Android应用程序.
但是,我找不到协议如何工作或应用程序源的任何规范.我希望能够使用它从Android和/或iOS调试嵌入式设备.
有谁知道这个协议的规范或实现它的软件?
microcontroller bluetooth-lowenergy android-bluetooth ios-bluetooth
我闪烁着Sparkfun边缘板与SparkFun串行基本突围- CH340G使用一些的例子是,IDE中提供了公报教程。
尽管它已经正常运行了很多次,主要是针对具有TensorFlow Lite和SparkFun Edge的微控制器上的示例example1_edge_test和AI,有时在闪烁时会收到此消息:
Connecting with Corvette over serial port /dev/ttyUSB0...
Sending Hello.
Received response for Hello
Received Unknown Message
msgType = 0x131
Length = 0x5800
['0x80', '0x6', '0xf0', '0xa5', '0x31', '0x1', '0x0', '0x58', '0x0', '0x3', '0x0', '0x0', '0x0', '0xa0', '0xff', '0x4', '0x0', '0x2', '0x0', '0x0', '0x0', '0x7', '0x0', '0x0', '0x0', '0x1', '0x0', '0x0', '0x0', '0xff', '0xa3', '0x2d', '0xff', '0xff', '0x5f', '0x5', '0x0', '0x1', '0x0', '0x0', '0x0', …Run Code Online (Sandbox Code Playgroud) microcontroller ×10
c ×4
embedded ×3
algorithm ×2
assembly ×2
arduino ×1
atmega ×1
avr ×1
bootloader ×1
cpu ×1
debugging ×1
linux ×1
microchip ×1
performance ×1
pic ×1
processing ×1
standards ×1
tensorflow ×1
uart ×1
usb ×1