标签: microchip

为什么不在C18编译?

我正在尝试使用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)

c microchip pic18

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

Printf忽略空值?

我正在为嵌入式目标Microchip PIC24编写C代码,由于某种原因,运行时libc无法通过串行端口正确发送\ 0值.

printf("\xEE\xEE\0test");
Run Code Online (Sandbox Code Playgroud)

例如,发送EE EE"test",忽略空字节.

有谁知道为什么会这样?

编辑:嗯,没关系XD.我用put来发送字符串.. doh'

c embedded null printf microchip

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

在 MPLAB XC8 Microchip 编译器中声明字符串的特定地址

当我想对我使用的字符串使用特定地址时,使用编译器 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)

它不起作用。

c compiler-construction microchip pic

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

dspic 33 - 看门狗定时器

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

microcontroller microchip pic

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

启用端口RA0作为输入并从led检索值LDR

我正在使用带有微芯片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的值/电压.

如我错了请纠正我.

c embedded microcontroller microchip pic

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

效率:8个数组与多维数组

什么更有效?8个数组int8 myArrayx[100],还是多维数int8 myArray[8][100]?我正在使用Microchip PIC微控制器的CCS编译器,我需要在缓冲区中尽可能快地写入,这就是我的问题的原因.

c microchip pic

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

不同微控制器中的可变大小是否相同?

如果我们在PIC单片机中定义一个变量"整数",那么当我在Atmel微控制器中定义相同的"int"变量时,它的大小是否相同?或者它会有不同的尺寸?

这个问题是在嵌入式系统的采访中,答案应该是什么?

我有点困惑!

它取决于微控制器还是编程语言?在所有不同的编程语言中,相同的变量类型如整数是否相同?

这不是同一个问题,因为嵌入式控制器有点不同.

c embedded microcontroller avr microchip

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

在不使用PICKit或ICSP的情况下将程序加载到PIC18F中

我目前正在学习如何将PIC18F4550用于我的项目.有没有办法在不使用ICSP或PICKit的情况下将程序加载到PIC中?在第一次使用PIC时,我们可以使用USB将程序加载到PIC中吗?

microchip pic

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

SPI 和 QPI(嵌入式)有什么区别?

在我的项目中,我使用Winbond W25Q64 64-MB 串行闪存,当我阅读该串行闪存的数据表时,有两种类型:

SPI(W25Q64 闪存 ID:- 0xEF4017)和 QPI(W25Q64FV 闪存 ID:- 0xEF6017)。

我很了解SPI,但是我第一次听说QPI。所以我有一些问题-

1.SPI和QPI有什么区别?

2.我可以使用QPI通信类型的Flash(使用SPI)吗?

3.QPI的主要特点是什么?QPI(通信协议还是其他协议)是什么?

microcontroller spi microchip nxp-microcontroller

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

特殊结构类型

所以我在查看 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)

我似乎无法弄清楚这里的类型或实例是什么(以及这样设计的目的是什么):

  1. 什么是标记UART?
  2. 什么是UART?
  3. 什么是*PUT?

c struct microchip

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

从c ++程序访问ASM文件中的函数?

今天敲我的头;)

在这里,我询问了如何将ASM文件转换为C,并且从响应中看起来没有合理的方法来执行它.精细.因此,其中一个回复建议我只是按原样使用函数并完成它.听起来不错.

但是怎么样?

神圣的废话我已经尝试了我能想到的一切!我正在使用Microchip品牌的MCU(PIC18F4480)和Microchip品牌的IDE(MPLAB IDE),而ASM文件是Microchip编写的...所以你认为我会找到一些方法来使用它们!到目前为止还没有运气.

我对ASM(汇编)一无所知.我用C++编写代码,坦率地说,这不会改变.必须有一种方法可以访问Microchip ASM文件中的函数,而无需用新语言重写我的所有代码.

如果有人想看看,ASM文件和应用笔记就在这里.

c++ embedded assembly microchip

0
推荐指数
2
解决办法
2556
查看次数

为什么我的PIC没有闪烁它的LED?

我正在尝试开始使用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)

c++ embedded microchip pic

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

将ASM转换为C

我不知道是否有一个程序可以将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)

c embedded assembly microchip pic

-4
推荐指数
1
解决办法
420
查看次数