hycuzcre 发表于 2025-1-19 14:39:28

天问51 编译不了

不会写程序用DeepSeekAI写程序   复制到天问51图形编程里的字符编程    编译不出文件    求教 必须用keil么   

DebugLab 发表于 2025-1-19 15:35:29

不建议用AI工具写程序
新手入门可以看看冲哥视频教程

wlhet 发表于 2025-1-19 15:43:24

建议多学,AI这东西不好说的

soma 发表于 2025-1-19 18:10:34

天问还是使用图形化吧。

xxkj2010 发表于 2025-1-19 19:03:01

天问有自己的家,可以去隔壁看看。不过还是觉得keil写代码比较自由,更彰显个性

xxkj2010 发表于 2025-1-19 19:04:00

天问写些简单的程序还可以,复杂的还是建议用keil
AI对天大众化的代码还可以,对于天问应该是心有余而力不足

yzhkpli 发表于 2025-1-20 13:25:33

哈哈。我也买过twen的板子,8h和32G都买了。打算看完教程后用keilc去到上面跑一下。
估计是ai不识别twen的文件结构(训练时候么有用twen的资料喂他,deepseek这个仅仅是跑了几十天,您碰到的错误充分说明训练的量太少)

设定好main.c和stc8h.h头文件位置后应该就没事了

hycuzcre 发表于 2025-1-24 20:32:51

yzhkpli 发表于 2025-1-20 13:25
哈哈。我也买过twen的板子,8h和32G都买了。打算看完教程后用keilc去到上面跑一下。
估计是ai不识别twen的 ...

ai 对芯片的定义都全是错的   我明天给它改错看能不能写出程序{:yun:}

yzhkpli 发表于 2025-1-24 22:39:14

hycuzcre 发表于 2025-1-24 20:32
ai 对芯片的定义都全是错的   我明天给它改错看能不能写出程序

麻烦把错误的代码贴上来看看。

hycuzcre 发表于 2025-1-25 16:23:45

yzhkpli 发表于 2025-1-24 22:39
麻烦把错误的代码贴上来看看。

#include <STC8H.H>
#include <intrins.h>

#define ADC_LEFT   0
#define ADC_RIGHT1
#define ADC_TOP    4
#define ADC_BOTTOM 5

sbit AIN1 = P2^4;
sbit AIN2 = P2^5;
sbit BIN1 = P2^6;
sbit BIN2 = P2^7;

void Delay_ms(unsigned int ms) {
    unsigned int i, j;
    for (i = ms; i > 0; i--)
      for (j = 110; j > 0; j--);
}

void PWM_Init() {
    P_SW2 |= 0x80;
    PWMCKS = 0x00;
    PWM1T1 = 0x00FF;
    PWM1T2 = 0x007F;
    PWM1CR = 0x80;
    P_SW2 &= 0x7F;
}

void ADC_Init() {
    P1M0 = 0x00;
    P1M1 = 0xFF;
    ADCCFG = 0x0F;
    ADC_CONTR = 0x80;
}

unsigned int ADC_Read(unsigned char channel) {
    ADC_CONTR = 0x80 | channel;
    _nop_();
    while (!(ADC_CONTR & 0x20));
    ADC_CONTR &= ~0x20;
    return ADC_RES << 8 | ADC_RESL;
}

void MotorX_Dir(unsigned char dir) {
    if (dir == 1) {
      AIN1 = 1;
      AIN2 = 0;
    } else if (dir == 2) {
      AIN1 = 0;
      AIN2 = 1;
    } else {
      AIN1 = 0;
      AIN2 = 0;
    }
}

void MotorY_Dir(unsigned char dir) {
    if (dir == 1) {
      BIN1 = 1;
      BIN2 = 0;
    } else if (dir == 2) {
      BIN1 = 0;
      BIN2 = 1;
    } else {
      BIN1 = 0;
      BIN2 = 0;
    }
}

void main(void) {// 主函数声明修正为 void main(void)
    unsigned int adc_left, adc_right, adc_top, adc_bottom;
    int x_diff, y_diff;
    PWM_Init();
    ADC_Init();

    while(1) {
      adc_left = ADC_Read(ADC_LEFT);
      adc_right = ADC_Read(ADC_RIGHT);
      adc_top = ADC_Read(ADC_TOP);
      adc_bottom = ADC_Read(ADC_BOTTOM);

      x_diff = adc_left - adc_right;
      y_diff = adc_top - adc_bottom;

      if (x_diff > 100) {
            MotorX_Dir(1);
            PWM1T2 = 0x00FF;
      } else if (x_diff < -100) {
            MotorX_Dir(2);
            PWM1T2 = 0x00FF;
      } else {
            MotorX_Dir(0);
      }

      if (y_diff > 100) {
            MotorY_Dir(1);
            PWM1T2 = 0x00FF;
      } else if (y_diff < -100) {
            MotorY_Dir(2);
            PWM1T2 = 0x00FF;
      } else {
            MotorY_Dir(0);
      }

      Delay_ms(50);
    }
}













kiel5生成提示Rebuild started: Project: 50
Rebuild target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:?C_START
    MODULE:.\Objects\STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:?C_START
    MODULE:.\Objects\STARTUP.obj (?C_STARTUP)
    ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
creating hex file from ".\Objects\50"...
".\Objects\50" - 0 Error(s), 2 Warning(s).
Build Time Elapsed:00:00:01
页: [1] 2
查看完整版本: 天问51 编译不了