我是嵌入式c编程的新手,我需要一些建议。
我正在尝试在嵌入式系统上创建一个带有屏幕下方的菜单结构,操作系统代码和绘图/菜单库已准备就绪,但我无法弄清楚我是如何设计这个系统的。
它会:
我写了一些有用的代码,但仍然觉得我正在编写程序性的spagetti代码。我是嵌入式c系统的新手,所以我不知道我是否可以在代码中使用类或对象。如果有人告诉我正确的方法,我将不胜感激。我对编程其他任何BTW都很有经验,所以对技术讲座感到自由。 ;)
BTW菜单代码的结构如下:
menu myMenu;
entry* myMenuEntries;
int selection = 0;
myMenuEntries[0] = [entry definer code];
...
myMenu.entries = (entry *) myMenuEntries;
selection = DisplayMenu(myMenu);
switch(selection){
case 0: exit(); break;
}
如何在嵌入式c中创建一个像myMenu.entries
中使用的对象?
答案 0 :(得分:2)
我肯定会在这里使用面向对象的C,就像你怀疑是可能的一样。有很多关于如何在C上堆栈溢出进行oop的引用。您可以使用结构创建类,并使用函数指针作为成员函数,如果需要多态,则可以覆盖它们。
每个屏幕都可以在onEnter()上,例如,在加载屏幕时初始化东西,你可以有一个可绘制的类,它可以包含字符串,基元,图像等,知道如何在任何x处绘制自己,y坐标。您还可以拥有一个标准的屏幕对象,它由屏幕上的对象列表,它们的坐标和内容组成。这些也可以在编译时在大表中初始化。
(我在使用C和ASM的DSP上做了所有这些)
还有现成的库可以做到这一点。我知道micrium有一个。我在手机上,或者我在谷歌上把它链接到这里。