我正在尝试使用MPLAB C18 v3.36编译器编译以下代码.
编译器在'char rij;'上返回语法错误.但是,当我把char rij; 早些时候(在TRISA = ...之前),它编译......
void setup(void)
{
TRISD = 0b00000000;
TRISA = 0b00000000;
char rij;
for (rij = 0; rij<ROWS; rij++)
{
red_byte_array[rij]=0;
green_byte_array[rij]=0;
blue_byte_array[rij]=0;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在为嵌入式目标Microchip PIC24编写C代码,由于某种原因,运行时libc无法通过串行端口正确发送\ 0值.
printf("\xEE\xEE\0test");
Run Code Online (Sandbox Code Playgroud)
例如,发送EE EE"test",忽略空字节.
有谁知道为什么会这样?
编辑:嗯,没关系XD.我用put来发送字符串.. doh'
当我想对我使用的字符串使用特定地址时,使用编译器 C18:
在.C
#pragma romdata idsoft
const rom unsigned char _app_nfo[31]= {"V0.0 No - 05/12/12"};
#pragma romdata
Run Code Online (Sandbox Code Playgroud)
在链接器中:
CODEPAGE NAME=idsoft START=0x78E0 END=0x78FE
Run Code Online (Sandbox Code Playgroud)
我怎么能用 XC8 做同样的事情?我尝试了很多东西,但没有一个起作用。
在 XC8 链接器参数中:
-L-pappnfo=0x78E0
Run Code Online (Sandbox Code Playgroud)
在 .C 中:
unsigned char __section ("appnfo") app_nfo[31];
Run Code Online (Sandbox Code Playgroud)
它不起作用。
您好,我想知道是否有一种方法可以在微芯片的 dspic33 中实现看门狗定时器,而无需配置位,但只能在源代码本身中实现,谢谢 eran
我正在使用带有微芯片v8.63的picdem 18F4550和C18编译器.
我将PortA设置为输入,我将在端口RA0上连接LDR.以下是(我认为)
TRISAbits.TRISA0 = 1; <= set RA0 as input
Run Code Online (Sandbox Code Playgroud)
现在我想要LDR的值(如果LED打开了电压/值),我可以说:
int colorLed = PortAbits.RA0;
Run Code Online (Sandbox Code Playgroud)
现在在int类型的变量中,有我的Led的值/电压.
如我错了请纠正我.
什么更有效?8个数组int8 myArrayx[100],还是多维数int8 myArray[8][100]?我正在使用Microchip PIC微控制器的CCS编译器,我需要在缓冲区中尽可能快地写入,这就是我的问题的原因.
如果我们在PIC单片机中定义一个变量"整数",那么当我在Atmel微控制器中定义相同的"int"变量时,它的大小是否相同?或者它会有不同的尺寸?
这个问题是在嵌入式系统的采访中,答案应该是什么?
我有点困惑!
它取决于微控制器还是编程语言?在所有不同的编程语言中,相同的变量类型如整数是否相同?
这不是同一个问题,因为嵌入式控制器有点不同.
我目前正在学习如何将PIC18F4550用于我的项目.有没有办法在不使用ICSP或PICKit的情况下将程序加载到PIC中?在第一次使用PIC时,我们可以使用USB将程序加载到PIC中吗?
在我的项目中,我使用Winbond W25Q64 64-MB 串行闪存,当我阅读该串行闪存的数据表时,有两种类型:
SPI(W25Q64 闪存 ID:- 0xEF4017)和 QPI(W25Q64FV 闪存 ID:- 0xEF6017)。
我很了解SPI,但是我第一次听说QPI。所以我有一些问题-
1.SPI和QPI有什么区别?
2.我可以使用QPI通信类型的Flash(使用SPI)吗?
3.QPI的主要特点是什么?QPI(通信协议还是其他协议)是什么?
所以我在查看 Microchip 的 dsPIC MCU 头文件时偶然发现了这个结构:
/* Generic structure of entire SFR area for each UART module */
typedef struct tagUART {
uint16_t uxmode;
uint16_t uxsta;
uint16_t uxtxreg;
uint16_t uxrxreg;
uint16_t uxbrg;
} UART, *PUART;
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚这里的类型或实例是什么(以及这样设计的目的是什么):
今天敲我的头;)
在这里,我询问了如何将ASM文件转换为C,并且从响应中看起来没有合理的方法来执行它.精细.因此,其中一个回复建议我只是按原样使用函数并完成它.听起来不错.
但是怎么样?
神圣的废话我已经尝试了我能想到的一切!我正在使用Microchip品牌的MCU(PIC18F4480)和Microchip品牌的IDE(MPLAB IDE),而ASM文件是Microchip编写的...所以你认为我会找到一些方法来使用它们!到目前为止还没有运气.
我对ASM(汇编)一无所知.我用C++编写代码,坦率地说,这不会改变.必须有一种方法可以访问Microchip ASM文件中的函数,而无需用新语言重写我的所有代码.
如果有人想看看,ASM文件和应用笔记就在这里.
我正在尝试开始使用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) 我不知道是否有一个程序可以将ASM转换为C.我检查了谷歌,我已经读过IDA Pro可以做到但我不知道如何做.无论如何,你能帮我把这个用ASM编写的代码转换成C吗?我不擅长集会,所以我希望你能帮助我.谢谢 :)
这是代码:
#define CALIBRATIONTIME .10 ;Number Of Times To Measure Signal During Calibration
;**********************************************************************************************
;Calibrate() - Measures A Period From The Input(GP0) Reference Signal
; - Updates Osccal Value
; - Updates E^2
;**********************************************************************************************
CALIBRATE
movlw CALIBRATIONTIME
movwf COUNTER ;Calibration Counter
LOW0
btfsc INPUT0 ;Wait To Sample Low Edge #0 (Makes Sure We Are Synchronized First Time Through)
goto LOW0
HIGH1
btfss INPUT0 ;Wait To Sample High Edge #1
goto HIGH1
clrf TMR0 ;Start Timer (Timer Will Be …Run Code Online (Sandbox Code Playgroud)