粉丝3.3万获赞7.2万

哈喽,大家好,这里给大家录制一个视频,就是关于我们这款 cbd 六小开发版啊,在这款怎样通过一个啊令工具来杀入代码,就通过这个 sw 口来杀入代码 啊,首先呢我们第一件事呢,就是要把这个 beot 复试字,把 beot 一和 beot 零这两个,把它啊转接到地上,就是 gnd 接地啊,看到我们这里转接到地啊,把它给转接到地上, 然后呢给他往上垫,因为我们这个假链啊,还有这个换板,各种换板滑板,他里面已经有一号的啊,就输入电源上来上户了,我们 攻过来了,好是连接好,连接好这个口不一定要对准,不然稍微不了。然后呢我们先打开一下我们的光盘,这是我们的光盘目录啊,我们这里这个为主啊,这是一个发货 默认发货的程序好,里面有个标准,里面有个项目文件,打开它,那你要先装好 q, 是这个 q, 我们使用这个工具来上路呢,是配合这个啊, q 就是 q mpk 啊, 首首先进来之后呢,我们就是说要设置好他的下载一个条件,第一个就是我们这里有一个 option for time, 里面有个 opton bottie 或者点这个快捷键啊,同样这个上路上路程呢,在这里也有一个啊,这里有个第五代码上路教程里啊,有一个六配合奖励下载吗?就这个大家看一下,就是我这讲的,就是我这个视频讲的 好,记住这个 option for tiger 之后 optimal tiger 第一个礼拜就是我们的发动机点中什么 c v, s d m 三二 f 幺零三, c v, 我们是 c b 第六嘛啊卡里,卡里首先有一个丁正,我们是发到的啊, 然后其他的默认式就可以了,然后有个阿富图书,图书呢,这里就是石头定制文件, x 文件是以 x 文件的名字,然后这个是他, 他是用这个 ex 文件的目录,然后这里啊,我选一定要生成这个 sex 文件。好,然后第二个这些在默认的设置就可以了,最后有个 bug, 你爸呢?这里要选中什么 ling, 这个叫 ling 好看了,最后一项也是选中什么 ling, 有时候他进来之后这里打钩了,把这个给去掉,然后选择什么 ling, 然后点击下屏,后面有个下屏, 他顶之后进来是这样子的 flash, 当然之后进来之后他这里是空的,这样很白的,但是要增加一个幺八,我们知道相遇 cbt 六,他的 flash 是幺八的,是吧,增加可以了, 这里点击 reset and run。 复位和隐形套路完之后呢,复位隐形叫一二三啊,这个插出区的, 这是摸着就可以了吧,关键是这里,你呢,选择什么?我们这个口啊,是 sw 口, 在这里显示 s w 啊,频率一般不用选太高,就算选个两道五道就可以了。好,然后这个 connect normal reset, normal usb 就可以了。好,点击确定。 ok, 好,我们看一下我们的开发版。 好,连接好之后呢,我们这边点击一个上路按钮,这个 olo 点击一个上路。好,这里上路完成了,比较快一点啊,大家去看 烧入。好,这样就成功了。这是把马给啊,烧入进去了,是比较简单快捷裂啊,是比较好用一点的,希望大家大家有用。好,大家在这里谢谢大家。

大家好,今天给初学子介绍一下计存器的反问,我们知道单开机的控制 是通过相应计算器的配置来实现的,对吧?那么我们如何实现对计算器的访问呢?包括前面 我们的创口啊,这个驱动都是通过对计算器的相应的读写来实现的,对吧?每个模块的计算器定义啊,都定义在某一个地址,这个地址都是固定的,然后他有这么多功能的计算器,对吧?这些功能的计算器也是 排序也是固定的,因此我们可以定一个这样的一个数据结构。我们以创客为例, 这个这个数据机构啊,你看他的从状态计成器数据计存器不特例,看一下和这个我们这个 表里面的排序是不是完全一致的,因为这是三十二位干壁机,因此他全部定义成三十二位的变量,对吧?这是一个我们平时定义数据机构不也是 这么定义的吗?但是有一点大家可能注意到了,这里有个比较特殊的 io 的标志,这个标志啊, 他就是告诉变异器,每次反问这个机构的成员的时候啊,必须反问他的原始位置 不要进行优化,因为我们在变异代码的时候,为了提高他的效率,有可能 会对某些变量进行优化的。他直接反问他的中间变量,这个中间变量你是不知道的,是 b 一气运算工程中产生的中间变量,他可能就直接使用那个中间变量了,对吧?但是对于我们这个外设的控制呢? 比如说你想串口,他什么时候接收到数据,你不知道的,对吧?所以必须反问他的原始的信息, 那么 我们如何来反问相应的计算器呢?就是把相应这里涉及到一个指针的概念, 你看这个地址,我们看一下 u a rto 啊,对 usb o, 看是他是怎么定义的,他就把这个 usa rt 的,这是一个长数地址,你看这是一个地址,这也是个长数,对吧?都是一个长数。第一个状态计算器定义的一个起始地址, 他这个是固定的,在单片机里面生产的时候就固定了,然后我们把这个地址呢转化为相应的指针, 刚才我们看了这个数据机构吗?把它转换为这个数据机构的指针, 那么指针的成员呢?相当于是不是修和这个我们实际的计算器匹配起来了,这个指针变量,他的其实地址是不是就是这个地址?因此我们对相应指针成员的访问就可以 介绍一些对相应计算器的访问了。所以我们在实际的使用过程中,我们并不需要知道他的实际地址,所有的计算器,我们的头文件都给我们定好了。 同样的对相应计算器的反问呢?我们要也要,我们也要使用这个库里面的,这个库里面给我们定义的 写红或者函数,像,就像类似这个来判断某一位是不是之一,对吧?要采用这种方法,而不是我们直接 比如说这个鱼一下,把这两位鱼一下也可以判断,但我不介意大家这么做,因为 你采用这种方法的话,他是通用的,你换一个芯片是吧?这个代码的从可从用性、可维护性都非常高,如果你采用这种方法的话,那就会比较差, 因为在有些单片机里面,比如说这个功能定义在这个控制计算器一里面,在另外一个单片机里面,他可能定义在控制计算器二里面, 对吧?那你的代码就不能通用了。假如我们使用这个外面有个红或者函数明的话,那就是通用的。

大家好,我是七月,今天我们继续讲三点 plc 的教程。好,我们还是打开我们的三点 plc 的编辑软件 在学习的小伙伴,嗯,帮忙点个关注。好,我们现在点击工程新建,我们新建一个 fx 三 u 的,呃, ps, 手续点击确定。 我们这一刻,呃是讲寄存器,我们上一课是讲的 呃计数器,我们这一刻来讲,嗯,计算器,计算器在我们整个的使用过程中间,嗯,占比是挺大的,因为我们很多数据要进行一个转化, 然后计算,然后存储等等一系列的数据,所以说我们这个数据计算器,我们这个计算器是使用频率很高的,所以我和我们现在来看一下,我们打开我们的呃技术手册,我们找到我们的 数据寄存器。好,我们数据寄存器它是分为两种的,一种是数据寄存器,一种是呃文件寄存器,它的代号是 d。 我们找到我们的 fx 三幺这一张, 他是,他也是跟我们的计数器啊,电视器啊, mg 电器啊这些东西一样,他都是分为一般用跟填电宝使用,在我们很多软元件都有这种特性, 我们在我们的设备他肯定是有,比如说断电之后我们需要保存下来的数据,不能说我们每一次断电,我们都每次都要去重新输入,这个是不现实的, 所以说我们都会有一般用跟停电保持用。好,我们看一下,一般用,一般用是他的编号是从零到一百九十九,然后停电保持用是两百到二五百一十一。好,我们后面的我们自行去看一下,比如说像一千以后就是文件计算器了。 好,我们看一下他的构造,我们一定要要注意他这个,比如说这个数据计算器十六位的,十六位就是一个计算器,就是他就是十六位,一个计算器就是十六位,我们一定要知道十六位的计算器他能存 存储多少东西,我们不能说给他一个很大的数据,让他存进去,结果他存不进,存不了,太大了, 是吧?我们一定要要知道他这个我们一个计算器就是十六位,他可以存这么大的数值,就是负的三万两千七百六十八,到正的三万两千七百六十七,他这里的数值。 好,我们如果说超过这样子这么大的,那我们怎么办呢?那我们可以使用三十二位的,三十二位 a 的呃,计算器,三十二位就是两个相连的计算器,就是一,就是一个三三十二位的计算计算器了。 好,我们等一下来演示一下,我们先,我们这个可以看一下他是不是可以存储这么大的数据,正的这么大,然后到负的这么大。 好,我们现在来来演示一下我们怎么去存储一个存储一个数据, 好,我们现在我们要知道一个一,我们来学习一个指令, m o u, 我们将一个数据存储到啊我们的第一联里面去,我们这个数据是多少? k 一, k 一就是一,然后存储到第一联里面去, 这个就是他的输入方法,我们得到的就是这样一个呃,一个一个提醒图,他这个提醒图直线下来是不是是什么样子呢?他会将 k k 一放到第一年里面去,就是把第一年里面把 这个 k 一就放到 d 链里面去, d 链里面的纸就会是一了。好,我们今天学习一下这个这个纸链,我们看一下我们的呃纸链里面, 我们看一下这个呃传送,他在传声这里 mou, 他是传送指令, 他就是这样这样书写的,他就是一个传送指点。 mou, 好,我们现在模拟一下,我们看他数据是是什么样子的,我们先变异, 然后我们启动模拟器, 我们现在我们将他的这 m 一字号。好,我们现在看到地连里面的纸是变成了一, 这是他的一种用法,就是说我们假如说要从要要想把地面里面的值进行一个更改的话,我们可以就是用这种方法去进行去更改。 这个低龄他是不不保持的,不停电保持的,所以说我们还像上节课一样,我们演示一下点击十套,他就会进行清零,所以说断电的时候他就会清零。 好,我们现在演示一下计数据计算器的另外一种用法, 我们把模拟器关掉, 然后我们插入一行, 我们昨天学学的是呃计数器,所以说我们在这里也输输入一个计数器 outce 空格,我们可以现在这里可以输入一个呃计算器,比如说 d 一,我们还是用 d 零吧,就变成一个这样子的,因为我们昨天输的那个计数器他是一个确切的值, 比如说像这种 这个 k 五就是一个确切的值。我们在 哎程序运行过程中间我们没有办法进行去修改,所以说我们在比如说我们这里需要进行一个这个这个数据,这个技术的这个值,我们不确定,我们怎么办呢?那我们就用一个计算器进行去递贷, 那我们在后面的,在后面的使用过程中间,我们只需要去修改这个 d 计算器里面的值,我们就可以达到修改了这个计数器里面的值是一样的, 比如说我们还可以这样写,比如说电视器 o u t t 零 d 一,我们以这可以这 这样写,就是就是我们可以动态的设定我们这个定时器的纸, 比如说电视器,我们要设定设定他五,设定他五秒,那我们就将第一的值就设为五十,他就变成了五秒钟的,五秒钟就执行这个 d 联的这个呃线圈。 好,我们接下来我们再认识一个呃,另外呃两个呃指令,我们先写一下, 比如说 m 四,我写一下,我们我们需要啊进行一个呃他的值得复位,比如说我们也可以将 这样这种方式,比如说像这种我们想把它清零,怎么清,我们也可以这样 k 零 d 零,我们将我们可以这样子将它里面 d 零里面的纸进行清零, 我们还一种方法是二,第五啊 s t d 零, 好,我们来认认识一下这个指令,这个指令在我们嗯编程过程中间也是用的特别特别多的, 我们看一下近视手册, 我找一下在基本基本指令里面,基本指令里面,我们找一下这个 s 一 t, 他是自卫指令啊, s t 就是复位指令,这个两个指令几乎就是呃最常用的那两个指令,所以说我们今天本身只用到 r s s t, 但是我们一定要记住这个呃 s 一 t, 它是一个自卫指令。 好,我们这我们用 rs 指令也是同样是可以也将地理里面的值进行一个清理的。 好,我们现在来演示一下 um 打开模拟器。 好,我们现在我们现在第一第一步我们想把地里里面的纸把改为一,那我们就可以把将这个字啊,把地里里面的纸进行改为一, 把,我们先复再复位,他现在地点里面的只是一了。 好,我们现在计数器里面他这里面的值是多少呢?这里就是一了,现在这里是就是一,所以他这里现在如果计数计到计数到一的时候,像这个线圈将会被被被被治好, 你看他就会变质啊。好,我们现在我们要将他的直复位,将低联名的直复位,这个样也也是可以的。那我们演示一下这个 st 这里的植被复位了,他变成了零,所以说这就是我们的寄存器的用法。 好,我们现在哎哎学习了一下他的复职跟复位,复位一个计算器,我们计算器还有另外一种用法,就是说让我们, 嗯,在我们整个编程过程中也是用的比较多的, 这个数据计算器同样是可以用用当成一个位来使用的,比如说 l、 d、 d 零点零,这也是可以的, 这样也是可以的,这样这样子可能好多人不会太懂,这个 如果不太懂的话也也也没关系,如果想学习一下的话,我也讲一下,就是他这个就是我们地林里面的值转化成二进制之后,他的第一位, 他的第一位是多少?他就是他这里的就是读取的他的第一位的状态, 其实就是其实就是这样,他说我们这样一般用的挺少的,我们还有另外一种用用法。 好,我们现在就是比较 ld 等于,这个是比较指令,我们顺便认识一下,就是 d 零等于 叫 k 一,这个是什么个意思呢?就是当我们用地点里面的直跟这个 k 一进行比较,如果他们相等,他这里就会直行, 如果不想整他就不会执行。好,我们在这里输出一个线圈,我们来,我们,我们来模拟一下。 好,我们打开模拟器。 好,此时我们这个比较直念,他是没有没有被接通的,接通的是个什么情况?这里会是蓝色的, 这里会是蓝色的,所以说这里要是蓝色的话,这个地方也会是蓝色,就是我爱你就会在输出,所以他这里是没有在输出的,所以他这里是不通的,因为因为低龄里面的纸现在是零,他不是一, 他们只要他们相等的时候,他们就会,就会,就会打通,然后外联就会进行一个输出。好,我们现在演示一下,我们将这个呃一放到地里里面去。 好,我们现在看到了一个这个这个情况, 我们将一放到低龄里面去之后,我们这里的比较直呢,就他比较一下,就是如果低领里面的值跟这个一相等,他就输出,就是这么个意思。 好,我们现在他一直在输出,因为我们这里面的值一直是一直是一,所以说我们现在开始我们将他复位一下, 就是我们将第一零里面的值复位变成零,他现在已经变成零了,所以他这里没有输出了。 好,我们关掉模拟器。我们既然说了这个呃比较指令,那我们继续 讲一下啊,他其他的呃,两个, 其他的两个我们也一遍一遍也讲一下, 就是我既然有等于,那我肯定也大于点小于,是吧?所以说我们也也这样,比如说他低龄大于,我们就这样空格低零大于 k 一, 就是说当他大鱼的时候,我们只先一个输出,我有 tv。 好,我们当然也有小鱼 d 零小于 k 一, 我要吃完了。 既然有等于大于小于,肯定还有不等于 l d 不等于,我们怎么输入?就是大于跟小于两个,这就是叫不等于, 我们要要知道不等于就是大鱼跟小鱼,那就就是不等于吗?然后地灵不等于 不等于一不等于二吧,然后让他输出 y 三。 好,我们我们就来看一下这几个,我们编一下。 好,我们现在。呃,打开模拟器。 好,我们现在低点里面的值是零,他现在这里是通的,为什么呢?低点里面是零,低点里面的值是零,他零肯定是小于一的,所以他现在直接就是通的了,这里再输出, 是吧?第一点里面是零,零小于一他就在输出。 好,我们期待低龄,你同样低龄里面的是值是零,他不等于二,这是正,这是对的吧?他逻辑是对的,所以他这里不等于二的时候,他这里就 可以再输出。好,我们现在改变一下他的值,我们将他这样。 好,我们现在得到一个什么呢?当地面名字只是一一等于一的时候, y 零就在输出,当他一等于他等于一的时候,他是不等于二的,所以 y 三也在输出,这两个就不输出,因为 一他既不大于也不小于,所以他这两个是不是在输出的? 好,我们现在我们再次改变一下这个低廉里面的纸,我们直接可以可以在这样这样去输入,我们输入一个,输入一个二,然后点击设置好,因为我们前面有,呃,有这个,有这个指令在空 控制的话,我们在这里是没办法。呃,没办法继续与直接输入的,我们因为我们他里面不停的循环在在运行的话,我们这里输入了,他这里又帮他改变了,他又变成一了,所以我们把这里关闭掉。好,我们直接在这里输入一个,嗯, 好,我们现在教里面的纸改变了,他这里二不等于二,二,他他这里二,他记忆不大, 不等,他是大于小于吗?他不等于吗?不等于二,所以说他这里是不会输出的,因为二等于二, 是吧?这有点绕口哈,大家自己去理解一下。所以只有这里他二,他大于一,他这里在输出, 这就是我们整个呃,寄存器的用法,然后其他编号的寄存器他也是也是同样的这样的去书写。 然后呃,比如说我们有些地方需要用到停电保持的呀,那我们就肯定得用停电保持的计算器, 所以说我们整个的充电宝,呃,呃,计算器的用法基本上大概就是大概就是这一些。 好,我们今天的课程就讲这么多,嗯,希望大家啊多多帮我点个关注, 然后有什么不懂的或者有什么疑问或者不是本课程的也可以,反正有什么疑问有什么不懂的都可以评论,或者都私信都问我,都可以的啊。帮忙多点个关注转发一下啊,谢谢。

大家好,这次我们来看一下这个寄存器啊,他包括数码寄存器和移位寄存器,这个是数码寄存器,那这个是比较简单的,就是这个地出发器,他不是有一个输入吗? a 三 aaaaa, 你就是输入了,比如这个地址 地址输入,输入一个地址进去啊,那那怎么把这个这个数据传到这个输出端呢啊?这里有一个起诉脉冲, 这个这个如果这个脉冲来了,就把这个打开了,比如这个等于一的时候,这个引门就打开,然后他就可以把这个这个滴滴触发器的输出跟连到这一段啊,打开了之后,这个就把这个 这个数据 a 三到二一零的数据传到 q 三到 q 零,这个是计算器这传啊,这个数据传过去以后呢,他又可以把这这这部分电路跟这部分电 断开了,然后就把这个数据存下来了。一位计算器就是包括左一右这个这个一位一位移过去,这一位计算器把我窜怒窜出,就是这个一个一个进来,然后一个一个出来 串路并出来,是一个一个进来,然后出去的时候呢,他是同时几个出去啊?另外还有并入、串出、并入、并出等等啊。 我们看到这个是一个移位计存器,那刚开始 a 三呢?也到 a 零是这个数字啊,在纯数脉冲的作用下, q 三的 q 到 q 零也是这个数字 啊,就是说这个这四个数字来存存到这个啊, q 三到 q 零来了,那现在他他要移一位一位移过去,我们看到他怎么移了?其实就是在低位补零,高位 去掉,你看这这个移移位就是变成了零幺幺零啊,右边补了一个零,然后再继续补零,就这样移过去。这个啊,这个其实挺简单的,我们看到因为这这这最低位,这里这个地啊,他一直是接接到零的,那么一个时钟卖出来了之后,这个 q 零就变成零了, 因为这个啊 d 触发器,他就是 qq n 加一啊,啊,就等于等于等于 d 嘛。所以这个这个一个时钟脉冲过来之后,这个 q 零变成了零, 但是扣一变成什么呢?扣一,那就是根据这个扣零来,如果扣零是零,那扣一就等于扣零,就等于零,如果扣零是一,那扣一就等于一,所以这个扣一他是等于扣零的,扣同样扣二等于扣一,扣三等于扣二,那那那扣 q 三,再再过去我们就不管了,所以就就这么移的。这个这个挺简单的哈,那么他用用这个波形图表示出来的就是这个样。那 q 零在第一个是中脉冲 开始的时候,他是一吗?那接下来都变成了零啊,扣一,我们看到这是扣零,这扣一扣一,第一个脉冲是一,那第二个呢?他就等于这个扣一就等于扣零了啊,这个一也是一样的, 所以第一个脉冲来的时候呢,他,他是一零一一,第一个脉冲来之前,他是一零一,第一个,第一个脉冲来了之后呢,他变成了零一一零,接下来接下来变成一一零零一零零零,就这样变。

大家好,我是济宁气功,昨天呢我们讲到了这个 prc 的这个数据类型,然后呢由位字、结 字整形、双整形、福典型等几种类型。那么今天我们侧重于讲这几种类型他们之间的关系。昨天我们讲到这个整形和 字的时候呢,我们给大家讲了一下这个他俩的区别,然后呢这个双整形呢,今天我补充一下昨天没有讲到的双整形呢,就是由两个整形组成,所以说呢它是三十二 二位,三十二位是什么意思呢?就是三十二个位,就是就像我们昨天举的那个例子一样,一个班级是一个整体,八个同学呢组成一个字节, 一个字结呢就是一个组,他们就是一个组,两个组呢就是一个整形。那么三十二位呢,就是由四个组组成,那就相当于是三十二个位, 福典型的也是三十二位,也是占了三十二个位。那么好了,我今天给大家讲一讲这个关于西门子凉白石马特数据旅行之间的关系,我跟大家列了一个这样的一个数据关系图, 他的位呢,我们拿中间接电器来讲,那个位呢有 m 零点零, m 零点七, m 一点零, m 一点七,一直往后类推,还有我们讲的这个二零点零, q 零点零 等等等等,他不都是他的位,都是西门子 prc 里面的最基本的单位,就是一个位,由 m 零点零和 m 零点七呢组成了 mb 零。然后呢由 m 一点零到一点七呢就组成了 mb 一, m 二点零到 m 二点七组成了 mb 二, m 三点零到 m 三点七组成了 mb 三。也就相当于是我们是一个整体,一个一个班级,一个整体,我是第零组,第一组,第二组和第三组, 那么字符和字的关系呢?就是一个字包含了两个字字符,然后呢,我们可以看到 m w 零呢,由 mb 零和 mb 一组成, m w 一呢,由 m b 一和 m b 二组成, m w 二同样以此类推,由 m b 二和 m b 三组成,这就是字,然后双字,双字呢,就是大宝,就是大宝那个字双字,他呢怎么组成的呢?他是由 mb 零, mb 一一直到 mb 三,四个主四个字符组成了一个双字, 也就是说我们可以这样理解,它是由 mw 零和 mw 二组成。 md 零呢,就等于 mw 零加 mw 二, 因为 m w 零呢,已经包含了 m b 零和 m b 一,所以说 m w 二呢,又包含了 m b 二到 m b 三,说 m d 零呢,就等于 m w 零加 m w 二,也就等于 m b 零加 m b 一加 mb 二加 mb 三。这就是双字和字和字符之间的关系,也就是当我们在编程的时候呢,一定要注意这一点,注意什么呢?假如我用了 mw 零, 切记我们不要使用 mw 一,在用字的时候,切记不要使用 mw 一,因为 mw 一呢,已经包含了 mb 零, mw 零呢,也包含了 mb 一,因为 mw 零呢,包含了 mb 零和 mb 一, m w 一呢,也包含了 m b 一,还有 m b 二,说他们俩之间呢,有一个交叉,所以说 m w 零使用的时候就不要使用 m w 一,使用 m w 二的时候也 不要使用 mw, 也就是他们俩之间相邻的之间不要使用。呃,一般我编程的时候呢,就是说如果使用这个新分子的编程的时候呢,习惯性的用偶数位就 mw 零二四六八,这样,以此类推, 就是西门子 m 四七两百四马的数据类型之间的关系。那好了,我们接下来要看一看三零数据之间的关系,他的位呢,是由 m 零和 m 七 m 幺零的 m 幺七, 或者是 mx 零到 x 七, x 幺零到 x 幺七,或者是 q 零啊, y 零到 y 七, y10 的 y17, 但他那个字符呢?嗯,不像西门子的这个呢,他就一个 mb 零,这样表示,你像我们呢,就是说人为的呢,就是说 可以写一个这种组合的方式, k g m g 是什么意思呢?就是 k 二 m 零包含了什么呢?就包含了 m 零到 m 七。这里大家可能, 嗯刚开始接触的时候,可能大家可能有点不大理解,我给大家解释一下这个 k 二 m 零包含了什么意思啊?我给你举个举个例子, k 一 m 零,这个 k 一 m 零呢,包含了什么意思呢?一个 k 就等于四个位,他就等于呢 m 零到 m 三, 这是一个 k, 那么如果两个 k 呢,两个 k 呢,不就是二乘以四吗?就等于八,所以说,所以说 k 二 m m 零就等于呢 m 零到 m 三, 加上 m 四到 m 七,这个是倒啊,做一个区别,不要认为是减号,所以说呢,这个是三零的这个字符,就是说如果你想用的话,这是一种用法, 但是呢一般的话呢,我们会怎么用呢?就是我们用到这个的时候呢,可能会怎么用呢?啊?就是用到什么地方呢?你比如讲,我们如果说是要啊统一去改变一个 从 m 零到 m 七的状态,那么我们总不能说是拿过来 prc, 我们写程序的时候,你比如说 l d m 零作为一个标志,然后我们复位,复位 m 一,然后再复位 m 二等等等等往下这样这样复位的话,这不是比较麻烦吗?所以说我们有一个简单的方法,这么简单的,那我们就可以 mov k 零, 然后 k 二 m 一,这个什么意思呢?就是指定是目传送,把数据零呢传送到 k 二 m 一,那么 k 二 m 一呢,就从 m 一开始呢,就包含了 八个八个位,因为 k 一呢表示了四个位, k 二呢就表示八个位。那么说我们如果说从 k 零表示呢,我就是从 m 啊,从 m 零开始呢,表示呢就是 m 零到 m 七,这里呢我们可以用别的表,别的 别的未来给他清除一下,就像这样的话呢就可以清除掉了,说这是一个 简单的一个使用一个小技巧,这里的三三零编程的时候一个小技巧,他的字呢就是相当于就是我们的呃寄存器就第零,第一、第二、第三, 当然了他也有那个双字,但是他的双字呢也不像西门子表示的这么清晰,有一个 md 零。然后呢我们使用的时候呢,就像这里一样,然后呢我们用 mmv 呢,就是一个 十六位的一个传送,那么 dmv 呢,就是一个三十二位的传送,这个低龄呢就包含了,就是可以认为他是一个三十二位的一个计算器。那么 mv k 一 d 零呢,这是一个十六位的呢,我们就认为这个 d 零,这个姬存器呢,他就是一个十六位的姬存器,那么我们可以做一个 看一下,这样呢我们可以去写一个程序呢,然后我们进行一个简单的检测,然后我们可以把这个先 m 八千零一吧哈,我们给他一个断开,我们先检测一下这个十六位的这个地灵,这个计算器是不是十六位的, 然后呢这地方我们可以以 mov 给他做一个相邻的计算器,第一我们把它给传到 d 幺零里面, 然后这样的话呢,我们改变第零的话,改变第一的话呢,因为第零就改变不了了,因为这个就是 m 八千,我们学过三连片 c 的时候都知道这是一个长臂支撑臂的一个触点, m 八千长臂触点也就是长按, 这时候呢我们编一下,我们下载到这个 prc 里面去,然后连接一下目标 usb, 好,已经连接上了,确定下载参数加程序直行, 这样的话呢我们在线监控一下,然后呢我们就看可以看到呢把 k 一把一这个数传到了第零计算器里面,然后呢不影响第一,这样的话呢我们可以给第一写入这个写,写入一个数据, 然后我们看一下,或者如果说我们写入一个五二一吧,然后设置,那这样的话呢五二一呢就传送给了 d 幺零,大家可以看到我为什么以改变第一的时候,这里会改变了呢?因为呢我们这里 里呢用了一个第一木,虽然我们这里是断开的,但是这个地方呢他包含了一个第零和第一,所以说呢这个地这个地方的时候呢,虽然我们没有使用, 然后这个地方呢改变了第一就相当于是第零和第一加起来等于这个数,我们可以做一下测试一样,我们拿出昨天的这个计算器 来验证一下,然后呢第零呢是一个十六位的计算器,也就是相当于等于一,然后第一呢存在于这个高位, 就说是 d 零的前面吧,相当于高位,然后呢我们可以做二进指一零, 好,我们输入怎么怎么输呢?我们先看一下五二一等于多少吧, 五二一就等于幺零零零零幺零零幺,然后呢他呢就占用了这个十六位, 这是一个十六位的计算器,就这样十六个位,然后呢我们把这个呢放在前面,然后后面就补零,补零,补零,最后等于一,他这个数呢会不会等于就等于这个三四幺四四二五七,我们输入看看是不是幺零幺幺零四个零幺零零幺 三四幺四四二五七三四幺四四二五七,来,好,我们可以看到是幺零零零零幺零零幺,然后零零零零零零,最后的是个一,所以说呢就包含了用低木问的话,我们可以剪开,明显的可以看到低零,包含了低零和第一。 然后呢如果说我们改变一下,把这个通了接通以后的话呢,这里话呢第零改变多少?第一就给,就会随着就有一定的影响,然后我们断开监控上三遍, 然后我们看我们改变第零的状态,看看第一的这个状态会是什么样的。好,这里有一个错误, 点击下载 好我们监控。哎,我们我们就看到我们把 k 一传给了第零,然后呢我们现在这个第第一里面呢, k 一传给了第零,第一里面呢是一个零,然后呢如果说是我们可以, 嗯,调试一下,看一下第一里面我们改变他的值,我们不论改变什么,他都是写不进去的,为什么呢?因为他包含了第零和第,因为这个是一个三十二的计算器,所以说他包含了第零和第一,因为第零呢里面的数值是一, 也就相当于这一个计算器里面的前面都是零,强制都是零,说是最后一位是一,说是你不论你怎么写入第一,他都是写入不进去的。 这就是三零的这个字和双字之间是怎么是怎么换算的?刚才我们讲到呢,就是 是那个三零的这个计算器字未字符之间的关系。嗯,我们刚才讲到西门子的 mw 零和 mw 一,如果你使用 mw 零的时候呢,一定不要使用 mw 一, 呃,那么我们这个三零的那个片线呢,就不会出现这种情况,因为一个地灵呢,他就包含了这个十六个位,第一呢也包含了十六个位,然后,但是呢这个 西门子的这个呢, mw 零呢也包含了十六位,但是呢他占用了 mw 一的前八个位,所以说呢,这个 在使用西门子编程的时候呢,一定要注意, m w 零用完以后就不要用 mw 一了,因为他俩之间有一个 mb 一在中间,他们俩 共公共的一个部分,所以说你这样用的话呢,会出现一个混乱,如果你写入一个值,写入到 mw 零里面,同样 mw 一里面也会有这个值,也会有一个一半的这个数据。 他俩分成一半的话, m b 零显示一部分就是纯属一部分数据, m b 一纯属一部分数据,那么 m 写入一个 m w 零一个数据,在 m b 一里面的这个数据呢就会影响 mw 一,所以说一定要切记写 m w 零的时候一定不要用 m w 一 三零 prc 呢,就不需要注意这个情况,他需要注意的是什么呢?在你用双字的时候,你像第一幕,像一些数学。后面我会讲到一些数学运算的时候,一些双字的这个数学运算的时候,就是使用第零的时候,就不要 使用第一,就三十二位的时候使用第零,就不要使用第一,使用第二,就不要也不要也不要使用第一。就是相邻之间不要使用偶数位,要么偶数位,要么基数位。 好的,我们今天的课程先讲到这里,然后我们明天再见。


嗨,大家好,我是云一,欢迎来到云一课堂。今天我给大家分享的是单片机 c 五幺语言的特殊功能继承器及未变量的定义。首先我们来看一下特殊功能继承器的 c 五幺定义。 c 五幺议员允许通过使用关键字 sf r sb 的。 我直接引用烟仪器提供的投文件来对特殊功能寄存器 s 矮花进行访问。 我们先来看第一种方法,使用关键字来定义特殊功能寄存器,他的格式是这样子的,首先是关键字 sfr, 接下来是特殊功能寄存器的名字,我们一般使用的是大。 然后等于接下来写的是特殊功能寄存器在片内 ram 八零 h 到 ffh 之间的地址。举个例子来看一下 s f r, 那表明接下来我们要进行特殊功能计算器的定义, i e 是特殊功能寄存器的名字等于,然后是它在片内 rem 高一百二十八字节当中的地址零 x a 八,那这个 a 呢?大写小写都可以,后边是分号。 那再看一个例子,我们来定义 tcon, 用 sfr, tcon 等于接来 地址零 x 八八零 x 表示的是在 c 五幺语言当中十六进制 还可以建议其他的特殊功能计算器。第二种方法是通过头文件来访问特殊功能计算器 各种衍生型的八零五幺单面机,他的特殊功能寄存器的数量和种类是不相同的。对特殊功能寄存器的访问可以通过头文件来进行。 那为了用户处理的方便, c 五幺呢?把八零五幺或者是八零五二单面机常用的特殊功能寄存器和其中的可寻指位进行了定义,将 将这些定义呢放在了一个头文件里边,这个头文件的名称是 r e g 五幺点 h, 那如果是八零五二单片机是 r e g 五二点 h 当中, 那我们需要用到投文件当中定义的特殊功能计算器,只需要在使用之前用一条预处理命令就可以了,那我们用的是这个包含 井号英格鲁的,然后是 r e g 五幺点 h, 那这个用这个符号把它包起来, 那这样就把头文件包含到了程序当中,在程序里边就可以使用特殊功能寄存器的名和其中的可寻指位的名称了, 当然我们也可以自己来对头文件进行增减。 接下来我们看一个例子,头文件它的引用举例, 首先我们是通过一个音库路的包含指令,将五幺单面机的寄存器投文件包含进来,然后是主函数,那接下来我们看在主函数当中,我们用到了一些特殊功能寄存器, t l 零 t h 零,那我们就可以直接使用了,对它可以进行直接复职,而 t r 零在二 e g 五幺点 h 当中也进行了定义,因此我们是可以啊 直接使用的。需要注意的是,在二一 g 五幺点 h 这个投文件当中,对 p, 比如说 p 零点零,对 p 零点零呢,他没有进行一个 定义,因此我们在使用的时候,我们得需要用 sbit 对 p 零点零呢,我们再进行一个定义,那我们可以用这个来表示,那后边是 p 零,那这个位置是这样, 那我们就需要知道在投文件当中,哪些量是进行的定义,哪些未是没有进行定义的,接下来我们看一下特殊功能寄存器当中的未定义。对特殊功能寄存器的可寻止未的访问, 要使用关键字来定义一些可寻指的位,一共有三种方法,对于 at 八九 s 五幺单片机来说,他一共有二十六个特殊功能计算器, 其中有十一个是可以进行未寻指的,那么能够进行未寻指的就可以通过我们接下来介绍这种方法 对其位进行访问。那第一种方法也是我们使用最多的一种方法,关键字 st beat, 然后是为名,接下来是一个等号,然后特殊功能寄存器的名称 位置,那我们这个位置用了这样一个,这个符号就是在键盘上数字六上面那个符号,那我们来看一下。 我们首先来定义一个特殊功能寄存器, sfr psw, 接下来是他的地址,零 x d 零,那这个 d 呢?可以大写也可以小写。 接下来我们定义这其中的一位,用 sbt 来表示,然后是 cy, 那 cy 是 psw 当中的最高位,那最低位是零,最高位就是七,因此我们可以写成 psw, 然后是一个 加号,然后是七,后边有一个分号,不要忘了这是第一种方法,那我们看一下。第二种方法是用 sbeat, 然后是为名,接下来是字节地址, 我们用四节地址来代替了特殊功能寄存器的名称,那我们知道 psw, 他的四节地址是零 xd 零,那我们直接换成零 xd 零就可以了。 第三种方法用的是斯比特位名,然后是位地址,由于每一个可寻指的位都给他分配了位地址,那我们也可以直接这样来写,斯比特 c y, 然后零 x 第七,那我们这样来定义的时候,你就需要知道他的 胃地址是多少,那一般呢,这个胃地址也不太容易记,所以我们最常用的还是啊第一种方法,使用特殊功能寄存器的名称,然后加他的位置来表示,那接下来我们看 看一个举例,这里边呢需要说明一下,在头文件 r e g 五幺点 h 当中,没有对 p 零到 p 二寄存器当中的未单元进行死必特的定义,因此我们在使用的时候得需要先进行定义 t 三口,由于每一位都具有第二功能, t 三口,每一位都具有第二功能。在计算器头文件当中对第二功能的位进行了定义,那我们使用的时候是可以直接来使用的,我们来看第一个用的是头文件井号 英可路的,然后是把头文件包含进来。接下来我们对 p 一点零进行了一个定义,用的是 sb 的,因为这是特殊功能寄存器的位, 那这个名称,接下来这个名称 p 一杠零是我们用户自己起的,他等于谁呢?他就等于 p 一的第零位,也就是我们说的 p 点零。然后是主函数,那接下来 在主函数当中我们是怎么来操作的?那这里边需要特别注意的是, sbit 来定义的这一位,他一定是全局变量,也就是写在所有函数的前边,如果你把这条写在了主函数里边,那我们在编意的时候,他就会提示你有错误。 那接下来我们看一下这边这个例子是对 at 八九 s 五幺单面机片内批依靠 口的各寻指位进行了一个定义,那我们首先呢用 sfr 对 p 一进行一个定义,这里边没有使用头文件, 那 p 一的地址是零 x 九零。然后接下来用 sb 特殊功能寄存器的未定义,然后分别写出来就可以了。定义的时候呢,我们需要用分号来结束。好了,那今天的内容我们就分享到这,再见。

大家好啊,欢迎收看本期课程啊。呃,前两节我们讲了这个快捷键啊,就是我们在调试中啊,这个快捷键应用,或者是在编程的时候啊,快捷键用好了,那么极大的提高我们的编程效率啊。 啊,比如说我们调监控啊,监控,那么我们想切换这个触点呢,是打开后关闭,我们直接按这个 shift 加 ante 啊,加回车就可以了啊,这个是最 最方便的啊,同时啊,我们还有一个调试的过程中还需要什么呢?监控啊监控,那么怎么监控呢?第一个呢,就是我们点击这个监视模式啊,就说在这个 呃出呃编程界面中啊,就可以显示各个数值的各个计算器啊,触点的当全职啊,当全职啊,是 同还是断开当前值存储的,那是多少啊?多少?我们直接监控,这是第一个啊,就是在编程界面上可以监控,那么第二种方式呢?在哪里呢?在线监视啊,监视 有一个软原件缓冲存储器,批量监视功能啊,批量监视功能,监视啊这是,呃,在这里啊,还有,要不呢,你就点击这个呃,这个工具 篮的啊,工具篮的和他一样的啊,软原件缓冲存储器,批量监视啊,批量监视,我们点开之后,比如说我想监视第一百的第一百,那么 直接在软件件中呢,我输入第一百啊,输入第一百就可以了,然后点击会车啊,点击会车,他就把第一百开始的这个,呃 呃,数据计算器的值啊,在触摸屏上,在这个屏幕上给我们显示出来了啊,显示出来了,然后这里大家注意啊,我们可以选择是 十进制的还是十六进制的啊?这是第一种啊,这些按钮呢,大家看啊,就可以显示各种格式啊,比如说我们显示二进制的啊,二进制的,那么二进制呢呢?第一百呀,因为他是分成 十六个位啊,就是第一百点零点一点二,一直到点 f, 是多少是二进制的啊?然后如果是选择位和字,那么不是二进制的了啊,这就啊,这就是 word 是字的形式啊,字的形式,那么每一个呢都是十六金制的啊,十六金制的啊,还有呢多点字啊,多点字。我们看一下啊,就是第一百啊,第一百,那么第一百这种模式呢,比如说第一个是第一百,那么 加零就表示第一百,加一就表示第一百零一,加二就表示第一百零二,他指的是第一百的基础上加零加一加二一直加到七啊,加到七就是第一百零七 啊,这里是第一百零八啊,这种是多点的啊,多点的啊,那么我正常默认的打开啊,是这种啊,字或者呃这个呃喂的模式啊喂的模式,然后同时啊我们最后他有数值,这里啊我们还可以显示 十进制和十六进制的切换啊,和阿斯克马切换啊,等等啊,或者三十二位整数,十六位整数啊,三十二位伏点数等等各种模式都可以监视啊,都可以监视,那比如说我监视十六位的,因为现在我是控制呃变频器的一个程序啊, 所以呢他的发送地址零一零三二幺零二零零零五二一三五啊,这是我们发送的一个代码啊,就是通过这种方式呢,我们就可以监视我们每个寄存器的值啊,同时呢我们也可以监视返回的数值啊,返回的数值 比如说变频器啊,发送完了他肯定要返回啊,零一,零三啊,零 a, 零七 d, 零等等等等啊,多少多少啊。这样呢,我们就可以实时的看到我们寄存器中的状态了啊,如果想更改某一个值,我们双击啊,双击, 双击之后就弹出来当前只更改的对话框啊,和我们之前嗯按 shift 的 ntel 的效果是一样的啊。然后呢,我们可以直接在这个界面更改啊,更改啊,这就是什么功能呢?就是这个, 呃,软原件缓冲存储器批量监视的功能啊。功能,这个是我们在调试过程中啊,是呃很常用的一个功能啊,希望大家掌握。



hello, 大家好,今天我们分享一个编程的小技巧,就是那个呃,我们如何判断一个计算器内的值发生了改变?我们 新建一个程序,然后语言选择 st, 然后我们今天使用那个三零的标签编程。嗯,我们首先我们先新建一个,我们取名叫他的那个,比如说啊,随便命名,就比如说 data 一, 就取名为 date, 然后它的类型是字,或者说呃,双字字有 无符号都可以,我们选择有符号,然后我们再新建一个标签名称叫,嗯, dat 数据站成一, 同样的他也是一个字的类型,让我们再建第二个叫数据单层二,然后我们再建一个叫呃变化标志吧, 变化标记标志他的数据类型是播放量,就是 v, 然后我们现在开始编程,然后我们首先我们要我们怎么判断一个计存器啊?就是比如说他通过外部,或者说通过触摸屏,或者说通过程序 他的直跟杆,我们怎么把他从,把他那个从程序里给他,给他判断出来。写法就是我们把这个原数据 袁书记给他,给他用时钟给他复制出来 啊。 s m 四幺零是一个系统的时钟,我们点击 f e 帮助就可以看一下,它是一个一百毫秒的时钟,五十毫秒 on, 五十毫秒 off, 我们继续编程,就是当这个 s m c 幺零为真的时候,那么我们的 data data 一 data 暂存一,我们给它复, 把 data 复制给它,然后否则,否则的话,嗯,给它就是没有,这个就是 s m 四幺零不为真的时候,我们把它复制到暂存 r 内。 好,我们结束判断,那么当,那么再再判断就输出我们程序获取到的那个结果,改变的那个标记给他置为 on, 就是如果, 如果这个赞成一,他不等于这个赞成二为真,那么我们的那个我刚才命名叫变化标志, 然后标志给他吃 v on, 然后结束。 好,我们来编一下,然后开启仿真, 这个时候呢,我们这个四幺零,它其实是在快速的闪烁,然后现在我们这个 date 等于零,然后我们给它更改一下它的单键值, 比如说我们从零改到五,确定那,然后这个变化标志就已经置为 on, 那我们手动把这个变化标志置为 off, 我们再测试一下,就是把五改成其他尺,比如说我从五改到三,然后我再确定一下变化标志是马上就检测出来了。 好,然后我们换换成梯形图,我们刚才介绍的是 st 的写法,那我们现在换成梯形图也是也是一样的, 是一样的,我们把这个建好的标签复制到我们这个 t 线图的主程序下, 然后这个时候我们就是听图的写法,就是取这个 s m 四幺零,然后木木木 det, 木 det 到 det 一暂存暂存一,然后否则 取反,或者说或者写这个的长臂触点也是一样的,我们这边就直接取反, 否则就粘贴一下,把它放到赞成啊,然后我们再判断不等于一,同样是不等于赞成一,不等于赞成二,当他有效的时候,那我们 set 一个, set 一个变化标志一样的, 我们编一下,再给他缝针。 好,这个时候同样的我们去更改这个 dat 里面的值,比如现在零,我给它变到一点,确定它这个 变化标志就会被置为昂,意思是我程序已经检出他那个里面的数值发生了改变,现在我们把这个变化标志给他 off 一下。嗯,这边 off 不了。嗯,我来看一下啊。 sure 更改单兼职,我们强制给他置为 off, 让我们再把这个强制室给解除掉。好,现在他已经 off 了,那我们把这个一改成三试一下,他也马上检,检测出来了。好,今天那个。

通过这三个我们就可以计算出计算器的地址,那么怎么计算呢?三个相加就是计算器地址了,那么这里定义的是这个什么 gproa 的这个欧迪亚计算机是不是设置 gproaod 啊?计算器是 一十六位,不就是十六个号全部输入一是这么写的,那么我们重新定义一个名字再操作,这就叫计算器映射了。第一层 gprv 更欧 d r, 然后呢, gprv 更欧 d r 等于零叉 f f。 上面的代码跟下面的代码大家自己比较一下,你是不是觉得下面的代码读起来非常的容易记,一看到这个名字啊,去漂 oo 的啊,但是一看到这个我想起来, 你可能现在想的起来,明天你就想不起来了,后天你肯定就已经忘记的知道你是啥都不知道了,那么一看到这个你就知道哦,是 gpsod。 那么所以说这个计算器映射啊,他是非常有必要的,给计算器取好名字,方便我们来应用,当然对于对于我们的编辑器来说,你取不取名字对他来说没有关系,我们取名字只是为了方便我们写代码,方便我们后面的维护,知道吧? 那么计算机地址怎么来计算呢?为了方便写代码去使用,我们给计将计算机的地址分为三个部分,那么第一个部分呢,就叫总线基地址啊,总线就包括 a h b a p b a a p p 二,对吧? a p b a p p 二,然后呢第二部分呢,就是我们 外设基于总线基地址的偏移量叫 r e h offset 是吧?这里是 busbase address。 第三个就是继承器相对于外设基地指的偏移量 reg offset, 通过这三个我们就可以计算出计算机的地址,那么怎么计算呢?三个相加就是计算机地址了,我们这里写的, 哎,大家可能有点蒙圈哈,那么你记住他就是三个地址相加,一个是外设的地址嘛,他肯定有个总线地址嘛,然后总线呢?外设挂在这个总线上面,他 基于这个总像他有个偏移嘛,因为总像上面有好多个记好多个外设,比如说 app 二上面你有 gprv 啊, b 啊, c 啊, d 啊,他都有个偏移的嘛, 然后 app gprv 里面又有 cra、 老 crh, odr 等寄存器一堆,那么就有一个寄存器相当于外设计例子的偏移嘛,对吧?我们前面说的那个零叉零 c, 上一个,上一个这个,这一个就是继承器偏移量就是 那个最后那一个灵犀,这个灵犀,这灵犀就是什么呢?就是继承器相对外设计地址的便宜呢?就是 reg offset。

大家好,我们今天来学习一下怎样在线调整 p、 l、 c 数据进去的这个数据。我们就以这个跑马灯为例,先把程序下载到 p、 l、 c 程序已经下载到 plc 了,我们启动一下, 启动一下我们看到下面这个直灯在亮,按的顺序现在是一秒钟一个, 到 y 十这里就看得到了,一秒钟一个,我要调这个时间,让他快一点,我们看怎么在线修改 监视模式,点右键有一个调试当前值 更改,这里输了一个低两百啊,输了一个低两百,然后这个地方可以选择数据类型,这个是字,然后下面这个是商字,就三十二位啊,再往下面是小数,我们看下面的这个数据范围就可以看得出来, 我们这里定时器是一十六位的,所以我们选择字,例如我设为五,那就零点五秒一个,让我们看一下他的速度是不是快了,看下面看得出来啊,看 p 的 c 正面的话,因为指示灯的个数没那么多, 我们看 p、 l、 c 程序这边下面的速度是不是已经快了,那我再调快一点, 零点二秒一个。我们看一下,这是我们在调成器经常用的方法,就是 在线修改某个计算器里面的数据,这个是我们经常要用的, 修改完了以后你可以把它关闭,然后就可以了,大家学会了吗?关注我,分享更多 p、 l、 c 知识。

园子哥能给我们演示一下寄存器地址计算过程吗?那么计算过程就来了, 首先怎么去记呢?首先我们要知道这个外设挂在哪个总线上面的,那么这个通过哪里看呢?看系统结构图, 然后呢获取这个外设总线基地值,怎么看呢?我们前面有个表三个嘛,对吧? app 一, app 二跟 hb 嘛,比如 app 二 gproa, 它是挂在 app 二上的,那么 app 二的总线基地值呢?零差四零零零 四零零幺零零零零上面。然后呢获取外设地址偏移量, gplv 相对 app 二种,现在偏移量是零差八百,所以可以得到他的这个 gplya 外设的基地指呢是多少?这里改个八就是了嘛,对不对?然后呢,寄存器 地址偏音量,那么具体某个继承器的偏音量是多少呢?就比如我们前面那个零差零 c, 那个欧迪亚继承器的比欧迪亚继承器是吧?外设机地址的偏音量是零差零 c, 那么这里再加个零差零 c, 那么这一个就是我们实际的计程器地址,看到没有 dprvodr 等于四零幺零零加零八百加 c 就获得了这个地址出来, 这就得到了这个纪存记地址了。 会算吧,简单吧, 就是你只要知道了这些地址,知道了平安一辆就很简单了。当然你也可以直接去刚刚那个 mrem map 上面找到,这个 gprv 的首地址是可以找到的。然后找到了首地址以后呢,你就直接只需要去知道这个偏 量是多少,你就可以知道具体某个计算器了。偏音量从哪里看呢?就是看我们的 reference menu 里面那个计算器描述里面他有个 offset, 有个偏音量的说明。