小编Amm*_*mar的帖子

你怎么理解Hex文件?(扩展地址记录)

我正在尝试为PIC18制作一个引导程序,所以我需要了解如何正确处理hex文件.例如,我理解如何处理以下十六行.

:040C0000E2EFFFF030
Run Code Online (Sandbox Code Playgroud)

04:字节数

0C00 :十六进制数字的地址

00:数据记录

E2EFFFF0:数据序列

30:校验和

所以我会知道如何处理上面的行,但是下面的十六行怎么样.

:020000040001F9
Run Code Online (Sandbox Code Playgroud)

02 :字节数

0000: 地址

04:扩展线性地址记录

0001:数据

F9:校验和

但究竟我该怎么做呢?我是否将这些数据写入该地址?你能把它翻译成机器语言吗?

顺便说一下,我的应用程序从地址开始,0c00bootloader从地址开始,在0020它上面是中断向量.谢谢!

更新

如果hex文件的第三行是以下,地址会FFC0改变吗?

:10FFC000FF00FF00FF00FF00FF00FF000001E9EF5E
Run Code Online (Sandbox Code Playgroud)

我在想,因为hex文件的第二行有04(扩展线性地址记录),那么我应该添加0001到第三行的地址FFC0,所以新地址就是这样的.

$0001 + $FFC0将等于1FFC0,所以第3行的下一组数据字节应写入此地址1FFC0,这是正确的吗?

c embedded microcontroller pic bootloader

6
推荐指数
1
解决办法
2121
查看次数

WebView可以在服务内部使用吗?

我有一个应用程序,它每隔一分钟检查一个特定网站,看看它是否找到我要查找的内容,然后在找到该项目时通知我(播放声音)。我按照这个方法让我的应用程序在后台运行,但我注意到它抱怨 WebView。

http://marakana.com/forums/android/examples/60.html

如果无法在服务中使用 WebView,我有哪些替代方案可以实现相同的目标?

android android-service android-webview

5
推荐指数
1
解决办法
7152
查看次数

如何解析用逗号分隔的字符串?

Char *strings = "1,5,95,255"
Run Code Online (Sandbox Code Playgroud)

我想将每个数字存储到一个int变量中,然后将其打印出来.

例如,输出变为这样.

值1 = 1

value2 = 5

Value3 = 95

value4 = 255

我想在循环中执行此操作,因此如果我在字符串中有超过4个值,我应该能够获得其余的值.

我想看一个这个例子.我知道这对你们很多人来说非常基础,但我发现它有点挑战性.

谢谢

c

5
推荐指数
1
解决办法
4万
查看次数

无法保存波特率设置?

我的GSM调制解调器默认设置为115200波特率.我连接了PIC18微控制器,波特率为19200.我将调制解调器波特率更改为19200然后保存了设置,但每次重置调制解调器时,波特率都会变回115200.

这些是我使用的以下命令.

改变波特率

AT+IPR=19200

然后我重新打开了具有19200波特率的超级终端(Putty)以保存当前设置.

保存设置

AT&W

但是在重置调制解调器后,波特率会变回115200.我使用的是M6000 GSM/GPS模块(Tk115 Gps Tracker),但没有太多的支持,这里有数据表供参考.

我正确保存设置吗?

我正考虑在PIC18F87j11上将波特率更改为115200,但使用当前的8 mhz振荡器是不可能的.任何反馈都会有所帮助.

谢谢!

microcontroller command gsm serial-port at-command

5
推荐指数
1
解决办法
4016
查看次数

如何将BCD转换为十进制?

如何在表示方面将二进制编码的十进制数转换为十进制数?我不想转换它的值,而是它的表示,这就是我的意思.

我想转换0x11成十进制11(不17),并0x2020(不32).

unsigned char day = 0x11;
unsigned char month = 0x12;

int dayDecimal, monthDecimal;
Run Code Online (Sandbox Code Playgroud)

我希望dayDecimal 11和monthDecimal = 12.我将使用0x00到0x60之间的范围,所以它应该是可能的.不会有'A','B','C','D','E','F.

更新:

我实际上是从RTCC芯片中读取时间,作为我正在进行的嵌入式项目的一部分.以该形式返回小时,分钟,日和月.例如,如果分钟是0x40则表示40分钟而不是64分钟,所以我需要能够正确地解释它.我需要以某种方式将0x40转换为40而不是64.我希望这是可能的.

谢谢!

c bcd

5
推荐指数
2
解决办法
3万
查看次数

以块(1024字节)擦除闪存

我正在制作一个bootloader.在向该块中的那些寄存器写入任何内容之前,我必须擦除1024字节的内存.即使我想写2个字节,我也不得不擦除1024个字节.我的问题是我不知道每个块的起始位置.例如,假设我想将以下字节写入此地址.

地址: 0x198F0

字节:C80E00010001616FDFECD6F08C8C92EC

当我尝试从地址开始擦除1024个字节时,0x198F0我注意到它开始从中删除0x19800.

我怎么知道每个块从哪里开始,所以我可以在软件中计算它?

我想知道这个的原因是我可以在擦除它之前将整个块复制到ram中,然后修改它,然后将它写回到同一个块中.我正在使用PIC18f87J11和MPLAB XC8编译器.我希望清楚我想要做什么,否则请在评论中告诉我.

谢谢!

embedded microcontroller microchip pic bootloader

3
推荐指数
1
解决办法
412
查看次数

从动态表内的div中选择按钮

我需要为表内的div内的按钮添加一个click事件处理程序.我如何使用jQuery实现它.这是我的div:

<div id = 'fromServer'></div>
Run Code Online (Sandbox Code Playgroud)

以下是我填充它的方法:

function onSuccess(response) {
    p = response;   //p is global for debugging! 
    resultsArray = response.results;
    str = '<table id=\'mytable\'>';
    str += '<tr><td class =\'title\'>Album</td>';
    str += '<td class =\'title\'>Track Name</td>';
    str += '<td class =\'title\'> <button id =\'save\'>Save</button></td></tr>';

    for (i = 0; i < resultsArray.length; i++) {
        str += '<tr><td>' + '<img src=\'' + resultsArray[i].artworkUrl100 +'\' height=\'100\' width=\'100\''  +  '</td>';
        str += '<td class=\'albumName\'>'  + resultsArray[i].trackName.substring(0,30) + '</td>';
        str +=   '<td> <input type=\'checkbox\' class =\'checkbox\' …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
1
解决办法
143
查看次数

你如何从数字中提取数字?

之前我问了类似的问题,但答案并不完全是我想要的,所以这次我会提供更多细节.

我是第一次使用C语言编写微控制器.我有一个Android APP,允许用户选择颜色组合(RGB颜色),然后将颜色代码发送到微控制器.微控制器根据所选内容显示灯光.

我试图做的是能够一次读取四位数字.因此,如果发送的号码是2005001000200,我想做以下事情.

提取第一个数字并将其保存在一个名为mode的变量中.然后..提取下四个数字并将它们保存在一个名为red的变量中.然后......提取下四个数字并将它们保存在一个名为green的变量中.然后..提取最后四位数字并将它们保存在一个名为blue的变量中.所以输出应该是这样的......

模式= 2

红色= 0050

绿色= 0100

蓝色= 0200

如果我能看到一个例子来说明我想要做的事情那就太棒了.请记住,我是第一次编程微控制器.非常感谢!

c microcontroller

2
推荐指数
2
解决办法
261
查看次数

如何擦除闪存的某些字节?

我的PIC18F87J11一次只能擦除1024个字节.有没有强迫它一次只擦除2个字节或更多?

我正在制作一个Bootloader,有时候只有一行HEX文件(16字节)更改为应用程序,所以我想用新的16字节替换内存中的那一行.如果我尝试擦除这16个字节,则自动擦除1024个字节.然后我被迫重写它们,这需要一些时间并降低Bootloader的速度.

是否有另一种方法可以在不擦除1024个字节的情况下从闪存中擦除某些内容?希望有.

谢谢!

embedded microcontroller microchip pic bootloader

2
推荐指数
1
解决办法
940
查看次数

如何动态地将小时放入时钟中?

我使用 Java 制作了一个 svg 时钟,在 svg 文件中绘制了一个圆圈和三条动画线。这就是我的时钟的样子。

\n\n

在此输入图像描述

\n\n

现在我想将小时添加到时钟中,如下所示。

\n\n

在此输入图像描述

\n\n

如何根据圆的cxcyr和进行计算?stroke-width我希望用户提供这些值,然后我绘制其余的值,包括时针、分针和秒针。我不担心时钟指针,我可以弄清楚这一点,但我不知道如何动态地将小时放在时钟中。我不想手动放置它们。

\n\n

这是我的 SVG 文件。

\n\n
<svg xmlns = \'http://www.w3.org/2000/svg\' version = \'1.1\' width="500.0" height="500.0">\n\n\n\n<circle cx="100.0" cy="100.0" r="50.0" stroke="none" stroke-width="1.0" fill="rgba(102,205,170,0.4)"/>\n\n<line x1="100" y1="100" x2="100" y2="62" stroke="red" stroke-width="2.0" stroke-linecap="round">\n<animateTransform attributeName="transform" type="rotate" from="0 100 100" to="360 100 100" dur="500ms" repeatCount="indefinite"></animateTransform>\n </line>\n\n<line x1="100" y1="100" x2="100" y2="62" stroke="black" stroke-width="2.0" stroke-linecap="round">\n<animateTransform attributeName="transform" type="rotate" from="0 100 100" to="360 100 100" dur="3s" repeatCount="indefinite"></animateTransform>\n </line>\n\n\n<line x1="100" y1="100" x2="100" …
Run Code Online (Sandbox Code Playgroud)

algorithm graphics geometry svg

2
推荐指数
1
解决办法
1157
查看次数