打印
[PIC®/AVR®/dsPIC®产品]

如何不用MCC就编写一个程序

[复制链接]
291|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wanduzi|  楼主 | 2023-6-27 20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
众所周知在MCC之前AVR和PIC都是通过寄存器操作的,其实至仍然可以的。
/* 
* File:   main.c
* Author:
*
* Created on 2023年6月27日, 下午8:02
*/

#include <xc.h>


/*
*
*/
void main(void)
{
    TRISCbits.TRISC1  = 0;
    TRISCbits.TRISC0  = 1;
    ANSELCbits.ANSELC0 =0;
    WPUCbits.WPUC0 = 1;
    while(1)
    {
        if(PORTCbits.RC0)
        {
            LATCbits.LATC1 = 1;
        }
        else
        {
            LATCbits.LATC1 = 0;
        }
    }   
}



使用特权

评论回复
沙发
wanduzi|  楼主 | 2023-6-27 20:28 | 只看该作者
主要是搞清楚这些寄存器各个位的定义,因为在头文件中已经定义为联合体,结构体,可以很方便的通过成员来操作这些位,所以使用其实很方便的。

使用特权

评论回复
板凳
wutaosamuel| | 2023-6-29 14:42 | 只看该作者
MCC 生成的代码其实也是对寄存器的操作。只不过它有图形界面可以快速配置和生成代码。

而寄存器的定义得查看相应控制器的数据手册
而寄存器的变量名是在对应的设备型号的头文件里,以pic18f57q48这颗8位mcu为例,头文件在mplab的文件夹下 “C:\Program Files\Microchip\MPLABX\v6.10\packs\Microchip\PIC18F-Q_DFP\1.17.379\xc8\pic\include\proc\pic18f57q48.h”

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

1766

帖子

3

粉丝