cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2501|回复: 4

[83/84] <TI83/84和C语言教程>使用c_ti83p.h库

[复制链接]
发表于 2021-9-15 15:00:08 | 显示全部楼层 |阅读模式
本帖最后由 labijun 于 2021-9-15 16:13 编辑

开始前发牢骚:
精华帖子的C语言连接失效拉!!因此一直是处于,我知道能用c语言写,但有苦于没有教程(或者说一个引导的方向)

好了,首先是
下载地址:
c_ti83p.h库的下载地址
binpac8x.py 文件,将.bin转为83,84可用的后缀
系统环境
*主要使用环境Linux*
*我使用的环境Ubuntu20.*,因为方便*
原因:安装软件方便,还有个原因就是我windows上直接下载下来的文件有缺失.(当然了你可以试一下直接git下载到win系统上,我没试过,懒~)
"使用TI-83plus se"
↑以上只是我写这篇教程的环境,你当然可以使用其他的环境...
,我的下一楼将会讲述如何配置ubuntu系统下的环境准备.(如果你会,可以跳过)

#最后,我是大菜鸟,也没有系统学习过,都是这里看一点 ,那里摸索一点,有错误,有不对的地方请指正,就当看一乐吧~
 楼主| 发表于 2021-9-15 15:17:58 | 显示全部楼层
本帖最后由 labijun 于 2021-9-15 16:11 编辑

我们假设你从未接触过Linux系统(我的系统是Ubuntu20.*)
***哼~但起码听过吧***
1.png
如果你遇到任何困难,你可以通过探索和百度~~
考虑到以后的变化,搜索关键字我已经加粗,例如: ubuntu 更新apt包

首先是复制这一段来更新apt包
  1. apt-get update -y
复制代码

如果你是管理员,那么你可能不需要输入密码,反之,你可能需要输入管理员账户密码.

安装sdcc
  1. sudo apt-get install sdcc -y
复制代码

如果你是管理员,那么你可能不需要输入密码,反之,你可能需要输入管理员账户密码.

接着,你需要安装git
  1. apt install git -y
复制代码


写下来嘞,你需要通过git获取我们的项目(c_ti83p)
  1. git clone https://github.com/mortonsc/c_ti83p.git
复制代码

最后,我们需要binpac8x.py 这个文件(链接在1L)...(这部分写的好累)
总之就下载下来解压,得到binpac8x.py 这个文件,后面会写的emmm很模糊?难以理解?我很难描述.建议问下百度.

.py显然是个python文件
因此你需要安装python,文档上说无所谓python2或者python3,这里我安装的是python3
  1. sudo apt-get install python3.8 -y
复制代码
我的是通过xshell连接的ubuntu服务器,我可以使用
  1. rz
复制代码
binpac8x.py 文件传输




好啦~至于linux下的基本命令诸如
cd
mkdir
vim (这个文本编辑器你可能需要另外安装)

你需要自行了解一点,其实和windows下的操作差不多,只不过变成了敲字母

,我的下一楼会讲述如何使用改库并编写一个经典的hello world程序
#最后,呜呜呜,我不知道怎么添加图片~放最后来试下C:\Users\HoGen\Desktop\ti83withcteach\1.png
 楼主| 发表于 2021-9-15 15:38:01 | 显示全部楼层
本帖最后由 labijun 于 2021-9-15 15:59 编辑

此时你可以键入
  1. ls
复制代码
2.png
看到了你下载下来的文件夹
此时键入
  1. cd c_ti83p
复制代码
你可以进入这个文件夹
此时键入
  1. make
复制代码
会自动生成一些文件(其中 c_ti83p.lib 和 tios_crt0.rel文件我们之后还会用到他们)

此时你可以编写自己的c语言文件了,
键入(vim是个软件,你可能需要下载,当然你可以通过别的方式写文件,或者传文件,巴拉巴拉~)
  1. vim main.c
复制代码
#懂得变通哈~,如果你编写的源文件不是叫main.c 后面的命令也需要改哈!

此时按下 i 进入INSERT模式,此时你可以写c语言代码进去了
使用该库,你只需要通过#include引用即可
  1. #include "c_ti83p.h"
  2. int main()
  3. {
  4.     CDispStr("Hello world");//打印hello world
  5.     CGetKey();
  6.     return 0;
  7. }
复制代码
我们可以看下主要函数CDispStr()的描述
/* Prints s in the large font, and advances the cursor */
void CDispStr(const uint8_t *s);

↑他说以大字母打印,并且向前移动光标
好的,那么我们提前看一下最终效果吧
3.png
!!!!还没结束哦!!!!



 楼主| 发表于 2021-9-15 16:02:51 | 显示全部楼层
本帖最后由 labijun 于 2021-9-15 16:09 编辑

好了,此时键入
  1. sdcc -mz80 --std-sdcc99 --reserve-regs-iy --max-allocs-per-node 30000 --code-loc 0x9D9B --data-loc 0 --no-std-crt0 tios_crt0.rel c_ti83p.lib main.c
复制代码
此时,又生成了一大波文件! 但我们要关注的是.ihx后缀的文件
(呜呜呜,这里注意了,github上的教程是有lib/c_ti83p.lib这样的,但事实上,你之前通过make生成的文件就在本文件夹中)

注意到最后一个 main.c 这是我们刚才写的c语言程序

此时键入
  1. sdobjcopy -Iihex -Obinary main.ihx main.bin
复制代码
转化main.ihx文件为main.bin

最后我们要使用binpac8x.py了!
键入(我使用python3)
  1. python3 binpac8x.py -x main.bin
复制代码
这里生成了main.8xp的文件就可以传输到计算器拉
生成 TI-83plus 计算器使用的格式(.8xp)咯
那么问题来了,其他的计算器用的呢~
        请看binpac8x文档(*Φ皿Φ*)这里我截取了一部分
4.png

例如你可以通过改 -x 为 -3来生成给ti83使用的文件.


5.png
~~~也不知道为啥,使用python2不行


 楼主| 发表于 2021-9-15 16:40:48 | 显示全部楼层
本帖最后由 labijun 于 2021-9-15 16:42 编辑

最后嘞,如果你和我一样懒的话你可以在同文件夹下创建一个名为
Makefile
的文件(没有后缀),其中的内容为
  1. FILEN=main
  2. SDCC=sdcc -mz80 --std-sdcc99 --reserve-regs-iy --max-allocs-per-node 30000 --code-loc 0x9D9B --data-loc 0 --no-std-crt0 tios_crt0.rel c_ti83p.lib
  3. $(FILEN).8xp: $(FILEN).bin
  4.         python3 binpac8x.py -x $(FILEN).bin
  5. $(FILEN).hex: $(FILEN).ihx
  6.         sdobjcopy -Iihex -Obinary $(FILEN).ihx $(FILEN).bin
  7. $(FILEN).ihx: $(FILEN).c
  8.         $(SDCC) $(FILEN).c
复制代码
看第一行FILEN=main,我们的前面的编译的文件的起点是main.c  所以假设以后你编写一个 ha.c的文件,你需要修改这里.
再看python3 binpac8x.py -x $(FILEN).bin 你可以发现,这里也可以根据需要更改


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-12-21 23:42 , Processed in 0.064657 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表