Tag: 嵌入

如何在仅支持常量表达的函数中将变量用作参数

我正在使用这个function: __delay_cycles(var); 我收到以下错误: _delay_cycles参数必须是常量表达式 很公平! 但是我怎么能绕过这个呢? 我每次都要用不同的值延迟我的程序。 我从RS232接收数据,我在一个int变量中疼痛。 我必须使用此function,我无法修改其结构。 我正在使用AtMega16。

指针在嵌入式平台上由C中的整数构成

我遇到了以下代码: #define ADCA (*(volatile ADC_t*)0x200) 它适用于AVR微控制器的嵌入式C代码。 ADC_t是一个联盟。 我知道(volatile ADC_t*)0x200它是一个指向绝对存储器地址的指针,但我仍然不太确定第一个*意味着什么。

将unix时间戳转换为没有系统库的日期

我正在构建一个嵌入式项目,它显示从显示器上的GPS模块检索的时间,但我还想显示当前日期。 我目前有时间作为unix时间戳,而progject是用C语言编写的。 我正在寻找一种从时间戳计算当前UTC日期的方法,考虑到闰年? 请记住,这是针对没有FPU的嵌入式项目,因此模拟浮点数学,尽可能地避免它的性能。 编辑 在看了@R …的代码之后,我决定自己写一篇文章并提出以下内容。 void calcDate(struct tm *tm) { uint32_t seconds, minutes, hours, days, year, month; uint32_t dayOfWeek; seconds = gpsGetEpoch(); /* calculate minutes */ minutes = seconds / 60; seconds -= minutes * 60; /* calculate hours */ hours = minutes / 60; minutes -= hours * 60; /* calculate days […]

从C调用PHP

我正在尝试编写一个将PHP用作脚本语言的应用程序。 该应用程序是一个CGI处理程序,我希望能够从它调用PHP页面。 我正在寻找能让我在C程序中初始化PHP的代码,然后将其传递给包含php代码的缓冲区或文件名,以便进行解析。 我想从中获取输出,并能够通过CGI程序中的函数运行它。

luaL_openlib替换Lua 5.2

我正在调整为Lua <5.2编写的库,并接到一个我不知道相当于的电话: luaL_openlib(L, “Polycore”, polycoreLib, 0); polycoreLib是一个 static const struct luaL_Reg polycoreLib [] 如何替换对luaL_openlib的调用? lua wiki只说 : 调用诸如luaL_openlib(L, name, lreg, x); 应该仔细重写,因为将搜索具有给定名称的全局表并可能创建该表。

如果字符串中有非ASCII字符,如何将C字符串(char数组)转换为Python字符串?

我在C程序中嵌入了一个Python解释器。 假设C程序从文件中读取一些字节到char数组,并且(以某种方式)学习字节表示具有特定编码的文本(例如,ISO 8859-1,Windows-1252或UTF-8)。 如何将此char数组的内容解码为Python字符串? Python字符串通常应该是unicode类型 – 例如,Windows-1252编码输入中的0x93变为u’\u0201c’ 。 我试图使用PyString_Decode ,但是当字符串中有非ASCII字符时它总是会失败。 这是一个失败的例子: #include #include int main(int argc, char *argv[]) { char c_string[] = { (char)0x93, 0 }; PyObject *py_string; Py_Initialize(); py_string = PyString_Decode(c_string, 1, “windows_1252”, “replace”); if (!py_string) { PyErr_Print(); return 1; } return 0; } 错误消息是UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u201c’ in position 0: […]

将Dart嵌入到应用程序中

我只是在尝试,但是想要使用Dart作为我一直在努力的高性能模拟应用程序的脚本语言。(想想游戏) 基本上用Dart代替Lua 我找到了旧的资源,但我听说它已经过时了 – 并没有真正找到关于如何实际使用它们的任何教程。 找到资源: https : //github.com/google/embed-dart-vm https://github.com/google/embed-dart-vm/tree/master/src

如何在看门狗定时器任务启动前防止系统挂起

我们使用基于ARM AM1808的嵌入式系统,带有rtos和文件系统。 我们正在使用C语言。 我们在应用程序代码中实现了一个看门狗计时器。 因此,只要应用程序代码出现问题,看门狗定时器就会负责系统。 但是,我们遇到的问题是系统在监视程序计时器任务启动之前挂起。 系统挂起,因为文件系统代码编码错误,有很多while循环。 有时候由于坏的NAND(或至少文件系统代码认为它很糟糕),代码会在一个while循环中挂起,永远不会脱离它。 我们得到的是一块死板。 因此,提供所有信息的关键是问你们是否有任何机制可以在应用程序代码之前运行的代码中实现? 有硬件看门狗吗? 可以采取哪些步骤以确保我们不会因某些while循环而导致死板。

用于微控制器的GUI库

我想为微控制器( Atmel XMEGA )创建一个GUI驱动的应用程序,该应用程序连接到128×64点图形LCD( EA DOGL128-6 )和4个导航按钮。 控制显示器本身(例如绘制像素和字符)是没有问题的,但为了防止我重新发明轮子我正在谷歌搜索用C语言编写的GUI-Library / -Toolkit,包括其源代码,将在32 MHz 8位微控制器,至少提供以下控制: 面板(对组元素) 菜单(可滚动) 图标 标签 按键 线图(可选) 但我没有找到任何有用的东西。 有没有人知道(或更好地使用)这样的图书馆(最好免费)?

rand()的实现

我在C中编写一些嵌入式代码,需要使用rand()函数。 不幸的是,控制器的库不支持rand()。 我需要一个快速的简单实现,但更重要的是空间开销很小,产生相对高质量的随机数。 有谁知道使用哪种算法或示例代码? 编辑:它用于图像处理,因此“相对高质量”意味着良好的循环长度和良好的均匀特性。