[PIC®/AVR®/dsPIC®产品] 请问 PIC16F18446 的 IO 端口寄存器算不算很坑人?

[复制链接]
1538|6
 楼主| panxiaoyi 发表于 2021-4-29 17:27 | 显示全部楼层 |阅读模式
请问 PIC16F18446 的 IO 端口寄存器算不算很坑人?如图,比如,我要单独设置 RB5 端口为输出,且不能牵涉到RB4和RB6,请问怎样设置?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| panxiaoyi 发表于 2021-4-29 17:56 | 显示全部楼层
感觉 PIC 就像 特朗普,很坑人。
之前在官网下单买了几个不同型号的样品,结果要分三次发货,现在都有一个多月了,第三个样品还没有发货
收到货后写程序时才发现 PIC18F24Q10 没有中文数据手册的,如下图
还好,我同时购买了 PIC16F18446 ,并且已经打样PCB(纯玩而已),结果又发现,我需要用到RB4和RB6端口,却发现它们的寄存器不是按传统出牌的。
还有,PIC18F24Q10 跟 PIC18F26K83 的中断C表达式竟然有很大的不同,害我转了不少圈
看来纯玩PIC真累。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| panxiaoyi 发表于 2021-4-29 18:09 | 显示全部楼层
哦,刚刚想起,既然上面的寄存器 LATB4、5、6 和 7 的设置很特别,那么,我下面的IO口模拟I2C操作怎么又很正常的呢,是不是上面的书写不是普通人能看得懂的?
  1. #define IIC_SCL  LATB6               //SCL
  2. #define IIC_SDA  LATB4               //SDA

  3. //简单延时
  4. void IIC_delay_us(void)
  5. {
  6.         unsigned char i=0;               //软件延时时间0123456...
  7.         while(i) i--;
  8. }

  9. //IIC初始化
  10. void IIC_init(void)
  11. {
  12.     TRISB4=0;                        //端口输出
  13.     TRISB6=0;

  14.     IIC_SCL=1;                       //时钟数据STOP
  15.     IIC_delay_us();
  16.     IIC_SDA=1;
  17.     IIC_delay_us();
  18. }

 楼主| panxiaoyi 发表于 2021-4-29 22:11 | 显示全部楼层
都是 中文译文 惹的祸


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GeekyGeek 发表于 2021-4-30 00:13 | 显示全部楼层
panxiaoyi 发表于 2021-4-29 22:11
都是 中文译文 惹的祸

之前也碰到, 被中文手册弄得一头雾水, 后面看了英文手册就豁然开朗.
后来, 基本上都是只看英文手册. Microchip 的英文手册, 还是不错的.

PIC18F24Q10 是非常新的芯片了,  中断是向量表.  和之前PIC18 的中断有很大不同.
hu9jj 发表于 2021-5-1 19:14 | 显示全部楼层
使用代码配置器MCC也许就不会入这个坑了,配置引脚很直观的。
chenjun89 发表于 2021-5-2 10:33 | 显示全部楼层
这个怎么说了,不算吧,各有千秋。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

417

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部