Ai32G12K128仿真问题
本帖最后由 lqw517 于 2024-10-15 09:46 编辑我用 Ai32G12K128 制作串口仿真芯片后(后续也制作过USB仿真片),串口仿真用不了,于是就用USB下载变回普通IC,
但是这个时候就出问题了,键值读取有问题。于是我又制作回USB仿真找问题,单步运行是正常的,但是仿真的时候,
全速运行的时候,又不行了。再次下载变回普通片,仍然程序跑的有问题。下载过官方的按键例程,是可以的。但是我的这个程序也没问题呀。
有没有大佬看看怎么回事,以下的代码。
现在跑程序很怪。
#include <STC32G.H>
#define FOSC30000000UL
#define BRT (65536 - (FOSC / 9600+2) / 4)
unsigned char leddata={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
volatile unsigned char keynum=0;
void delay(unsigned int x)
{
while(x--);
}
void uart_init()
{
// CLKSEL = 0x0f;
// CLKDIV = 0; //SYSCLK48M
SCON=0x50;
AUXR |= 0x05;
T2L = BRT;
T2H = BRT >> 8;
S1BRT=1;
T2R = 1;
// SBUF=0x57;
}
void main()
{
// IRC48MCR |=0x80;
// while(!(IRC48MCR&0x01));
P3M0 = 0x00;
P3M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
P0M0 = 0x00;
P0M1 = 0x00;
P40=0;
P70=0;
P06 = 1;
P00 = 0;
P6=0xc0;
// uart_init();
while(1)
{
// SBUF = 0x57;
// delay(30000);
P0 = 0xc0;
keynum=(P0^0xc0)&0xc0;
P0 = 0x0f;
keynum|=(P0^0x0f)&0x0f;
switch (keynum&0xcf)
{
case 0x41:
{
P6=leddata;
}
break;
case 0x42:
{
P6=leddata;
}
break;
case 0x44:
{
P6=leddata;
}
break;
case 0x48:
{
P6=leddata;
}
break;
case 0x81:
{
P6=leddata;
}
break;
case 0x82:
{
P6=leddata;
}
break;
case 0x84:
{
P6=leddata;
}
break;
case 0x88:
{
P6=leddata;
}
break;
// default:
// break;
}
}
}
用的是STC实验箱 lqw517 发表于 2024-10-14 16:21
用的是STC实验箱
main函数缺少
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
wpy621206 发表于 2024-10-14 16:45
main函数缺少
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1;...
加入了还是一样,而且现在读取不了这个芯片的固件号了 直接烧录实验箱例程包配套的按键扫描例子到芯片里试试。
另外用USB下载变回普通IC,如果还需要仿真的话得重新制作仿真芯片。
对照论坛导航栏“教学视频”-“仿真演示”里面的32G仿真演示视频步骤,看看是否有哪个步骤没操作好。 乘风飞扬 发表于 2024-10-15 09:10
直接烧录实验箱例程包配套的按键扫描例子到芯片里试试。
另外用USB下载变回普通IC,如果还需要仿真的话得重 ...
直接烧录例程包是可以的,我用USB下载变回普通芯片,然后发现运行有问题,我又制作回仿真去跑,然后一步一步跑是正常的,可以读取按键值。但是全速运行又不行了,再次下载回普通片也还是一样 lqw517 发表于 2024-10-15 09:43
直接烧录例程包是可以的,我用USB下载变回普通芯片,然后发现运行有问题,我又制作回仿真去跑,然后一步 ...
把你的程序直接烧录到芯片里测试功能会正常吗?
单步执行正常,全速运行不行。“不行”是什么情况?
考虑一下是不是全速运行时速度太快,导致肉眼看不到现象。 乘风飞扬 发表于 2024-10-15 11:41
把你的程序直接烧录到芯片里测试功能会正常吗?
单步执行正常,全速运行不行。“不行”是什么情况?
考虑 ...
1.不正常。
2.不行是指读取不了键值
3.我的一直按着不放开也不会改变数码管显示的键值,所以应该不会是肉眼看不见。 lqw517 发表于 2024-10-15 12:20
1.不正常。
2.不行是指读取不了键值
3.我的一直按着不放开也不会改变数码管显示的键值,所以应该不会是肉 ...
直接烧录例程包是可以的,那还是你的程序有问题,参考例程包的例子进行修改或者移植吧。
页:
[1]