发新帖我要提问
12
返回列表
打印

后面的这句话是什么意思

[复制链接]
楼主: chenjunt
手机看帖
扫描二维码
随时随地手机跟帖
21
chuxh| | 2018-6-12 17:37 | 只看该作者 回帖奖励 |倒序浏览

使用 Designer 里面的管脚配置窗口和在程序里设置寄存器没有权限高低之分。管脚配置窗口只能决定芯片初始化时的引脚状态,如果你用些寄存器的方法修改,引脚状态就会改变。
我觉得根本问题可能不是这里。

使用特权

评论回复
22
chenjunt|  楼主 | 2018-6-12 17:40 | 只看该作者
我想实现从PORT1输入不同的状态,从PORT2输出。
我的程序是这样:
void main(void)
{
   
    unsigned char port;
    // M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts

   
    port=PRT1DR;
    PRT2DR=port;
   
   
    // Insert your main routine code here.
}
其他的我在designer里已经设置好了。
PRT1DM0=0X00;
PRT1DM1=0XFF;
PRT1DM2=0X00;
  PRT1GS=0Xff;


PRT2DM0
PRT2DM0

使用特权

评论回复
23
chenjunt|  楼主 | 2018-6-12 17:44 | 只看该作者
PRT2DM0=0XFF;
PRT2DM1=0X00;
PRT2DM2=0X00;

PRT2GS=0X00;

但是还是没有达到我的想法。在port1输入不同的IO状态。但是在port2是没有反应的。
请问我的问题出在哪里。

使用特权

评论回复
24
chenjunt|  楼主 | 2018-6-12 17:47 | 只看该作者
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules


void main(void)
{
   
    unsigned char port;
    // M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts
PRT1DM0=0X00;
PRT1DM1=0XFF;
PRT1DM2=0X00;

PRT1GS=0Xff;
  
  
PRT2DM0=0XFF;
PRT2DM1=0X00;
PRT2DM2=0X00;

PRT2GS=0X00;
   
    port=PRT1DR;
    PRT2DR=port;
   
   
    // Insert your main routine code here.
}

a
我的程序是这样的,但是我在配置里没有改。他默认的端口配置是high z analog
然后我打开PSCConfigTBL.asm发现里面的代码如下:
LoadConfigTBL_pdproject25_Ordered:
;  Ordered Global Register values
    M8C_SetBank0
    mov    reg[00h], 00h        ; Port_0_Data register (PRT0DR)
    M8C_SetBank1
    mov    reg[00h], 00h        ; Port_0_DriveMode_0 register (PRT0DM0)
    mov    reg[01h], ffh        ; Port_0_DriveMode_1 register (PRT0DM1)
    M8C_SetBank0
    mov    reg[03h], ffh        ; Port_0_DriveMode_2 register (PRT0DM2)
    mov    reg[02h], 00h        ; Port_0_GlobalSelect register (PRT0GS)
    M8C_SetBank1
    mov    reg[02h], 00h        ; Port_0_IntCtrl_0 register (PRT0IC0)
    mov    reg[03h], 00h        ; Port_0_IntCtrl_1 register (PRT0IC1)
    M8C_SetBank0
    mov    reg[01h], 00h        ; Port_0_IntEn register (PRT0IE)
    mov    reg[04h], 00h        ; Port_1_Data register (PRT1DR)
    M8C_SetBank1
    mov    reg[04h], 00h        ; Port_1_DriveMode_0 register (PRT1DM0)
    mov    reg[05h], ffh        ; Port_1_DriveMode_1 register (PRT1DM1)
    M8C_SetBank0
    mov    reg[07h], ffh        ; Port_1_DriveMode_2 register (PRT1DM2)
    mov    reg[06h], 00h        ; Port_1_GlobalSelect register (PRT1GS)
    M8C_SetBank1
    mov    reg[06h], 00h        ; Port_1_IntCtrl_0 register (PRT1IC0)
    mov    reg[07h], 00h        ; Port_1_IntCtrl_1 register (PRT1IC1)
    M8C_SetBank0
    mov    reg[05h], 00h        ; Port_1_IntEn register (PRT1IE)
    mov    reg[08h], 00h        ; Port_2_Data register (PRT2DR)
    M8C_SetBank1
    mov    reg[08h], 00h        ; Port_2_DriveMode_0 register (PRT2DM0)
    mov    reg[09h], ffh        ; Port_2_DriveMode_1 register (PRT2DM1)
    M8C_SetBank0
    mov    reg[0bh], ffh        ; Port_2_DriveMode_2 register (PRT2DM2)
    mov    reg[0ah], 00h        ; Port_2_GlobalSelect register (PRT2GS)
    M8C_SetBank1
    mov    reg[0ah], 00h        ; Port_2_IntCtrl_0 register (PRT2IC0)
    mov    reg[0bh], 00h        ; Port_2_IntCtrl_1 register (PRT2IC1)
    M8C_SetBank0
    mov    reg[09h], 00h        ; Port_2_IntEn register (PRT2IE)
    M8C_SetBank0
    ret

上面表明模式还是在HIGH Z ANALOG .

使用特权

评论回复
25
chenjunt|  楼主 | 2018-6-12 17:51 | 只看该作者
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules


void main(void)
{
   
    unsigned char port;
    // M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts
PRT1DM0=0X00;
PRT1DM1=0XFF;
PRT1DM2=0X00;

PRT1GS=0Xff;
  
  
PRT2DM0=0XFF;
PRT2DM1=0X00;
PRT2DM2=0X00;

PRT2GS=0X00;
   
    port=PRT1DR;
    PRT2DR=port;
   
   
    // Insert your main routine code here.
}

a
我的程序是这样的,但是我在配置里没有改。他默认的端口配置是high z analog
然后我打开PSCConfigTBL.asm发现里面的代码如下:
LoadConfigTBL_pdproject25_Ordered:
;  Ordered Global Register values
    M8C_SetBank0
    mov    reg[00h], 00h        ; Port_0_Data register (PRT0DR)
    M8C_SetBank1
    mov    reg[00h], 00h        ; Port_0_DriveMode_0 register (PRT0DM0)
    mov    reg[01h], ffh        ; Port_0_DriveMode_1 register (PRT0DM1)
    M8C_SetBank0
    mov    reg[03h], ffh        ; Port_0_DriveMode_2 register (PRT0DM2)
    mov    reg[02h], 00h        ; Port_0_GlobalSelect register (PRT0GS)
    M8C_SetBank1
    mov    reg[02h], 00h        ; Port_0_IntCtrl_0 register (PRT0IC0)
    mov    reg[03h], 00h        ; Port_0_IntCtrl_1 register (PRT0IC1)
    M8C_SetBank0
    mov    reg[01h], 00h        ; Port_0_IntEn register (PRT0IE)
    mov    reg[04h], 00h        ; Port_1_Data register (PRT1DR)
    M8C_SetBank1
    mov    reg[04h], 00h        ; Port_1_DriveMode_0 register (PRT1DM0)
    mov    reg[05h], ffh        ; Port_1_DriveMode_1 register (PRT1DM1)
    M8C_SetBank0
    mov    reg[07h], ffh        ; Port_1_DriveMode_2 register (PRT1DM2)
    mov    reg[06h], 00h        ; Port_1_GlobalSelect register (PRT1GS)
    M8C_SetBank1
    mov    reg[06h], 00h        ; Port_1_IntCtrl_0 register (PRT1IC0)
    mov    reg[07h], 00h        ; Port_1_IntCtrl_1 register (PRT1IC1)
    M8C_SetBank0
    mov    reg[05h], 00h        ; Port_1_IntEn register (PRT1IE)
    mov    reg[08h], 00h        ; Port_2_Data register (PRT2DR)
    M8C_SetBank1
    mov    reg[08h], 00h        ; Port_2_DriveMode_0 register (PRT2DM0)
    mov    reg[09h], ffh        ; Port_2_DriveMode_1 register (PRT2DM1)
    M8C_SetBank0
    mov    reg[0bh], ffh        ; Port_2_DriveMode_2 register (PRT2DM2)
    mov    reg[0ah], 00h        ; Port_2_GlobalSelect register (PRT2GS)
    M8C_SetBank1
    mov    reg[0ah], 00h        ; Port_2_IntCtrl_0 register (PRT2IC0)
    mov    reg[0bh], 00h        ; Port_2_IntCtrl_1 register (PRT2IC1)
    M8C_SetBank0
    mov    reg[09h], 00h        ; Port_2_IntEn register (PRT2IE)
    M8C_SetBank0
    ret

上面表明模式还是在HIGH Z ANALOG .

使用特权

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

本版积分规则