mirror of
https://git.planet-casio.com/Lephenixnoir/fxsdk.git
synced 2024-12-28 04:23:37 +01:00
Fix several issues in VSCode_zh.md
This commit is contained in:
parent
df05f68c65
commit
bc8157c385
2 changed files with 56 additions and 19 deletions
|
@ -131,7 +131,7 @@ fxsdk build-cg
|
||||||
|
|
||||||
## 代码提示
|
## 代码提示
|
||||||
|
|
||||||
[如何在 Visual Studio Code 中获得代码提示](VSCode_zhCN.md)
|
[如何在 Visual Studio Code 中获得代码提示](VSCode_zh.md)
|
||||||
|
|
||||||
## 构建系统
|
## 构建系统
|
||||||
|
|
||||||
|
|
73
VSCode_zh.md
73
VSCode_zh.md
|
@ -43,6 +43,9 @@ int main(void)
|
||||||
|
|
||||||
// 用黑色在左上角写上 Hello world!
|
// 用黑色在左上角写上 Hello world!
|
||||||
dtext(1, 1, C_BLACK, "Hello world!");
|
dtext(1, 1, C_BLACK, "Hello world!");
|
||||||
|
|
||||||
|
// 将缓冲区的内容更新到屏幕上
|
||||||
|
dupdate();
|
||||||
|
|
||||||
// 在检测到下一次按键之前卡在这里。
|
// 在检测到下一次按键之前卡在这里。
|
||||||
// 因为在卡西欧计算器上,程序结束之后将直接返回菜单,
|
// 因为在卡西欧计算器上,程序结束之后将直接返回菜单,
|
||||||
|
@ -53,7 +56,9 @@ int main(void)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
如果一切正常的话你会发现,上方的 `C_WHITE` 的 `C_BLACK` 出现错误,因为目前编辑器不知道您是在给彩屏还是黑白屏的计算器写程序。如果您希望让自己的程序可以在两种屏幕上跑,则需要分别考虑两种情况。现在,姑且先让它在黑白屏上跑吧:
|
如果一切正常的话你会发现,上方的 `C_WHITE` 的 `C_BLACK` 出现错误,因为目前编辑器不知道您是在给彩屏还是黑白屏的计算器写程序。如果您希望使用这些颜色,需要用宏定义计算器型号。`FXCG50` 是彩屏计算器,`FX9860G` 是黑白屏计算器。
|
||||||
|
|
||||||
|
现在,姑且先让它在黑白屏上跑吧。下方的代码如果尝试编译成彩屏计算器的程序,将不会看到任何输出。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#include <gint/display.h>
|
#include <gint/display.h>
|
||||||
|
@ -63,16 +68,11 @@ int main(void)
|
||||||
{
|
{
|
||||||
// 如果是黑白屏幕
|
// 如果是黑白屏幕
|
||||||
#ifdef FX9860G
|
#ifdef FX9860G
|
||||||
// 用白色来清空屏幕
|
|
||||||
dclear(C_WHITE);
|
dclear(C_WHITE);
|
||||||
|
|
||||||
// 用黑色在左上角写上 Hello world!
|
|
||||||
dtext(1, 1, C_BLACK, "Hello world!");
|
dtext(1, 1, C_BLACK, "Hello world!");
|
||||||
|
dupdate();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 在检测到下一次按键之前卡在这里。
|
|
||||||
// 因为在卡西欧计算器上,程序结束之后将直接返回菜单,
|
|
||||||
// 所以只有卡在这里不让它结束,才能看到程序运行结果。
|
|
||||||
getkey();
|
getkey();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -81,7 +81,51 @@ int main(void)
|
||||||
|
|
||||||
然后您会发现没有报错了。因为 gint 内核要求先定义计算器型号,才可以使用颜色。
|
然后您会发现没有报错了。因为 gint 内核要求先定义计算器型号,才可以使用颜色。
|
||||||
|
|
||||||
如果您下定决心只在黑白屏或者彩色屏上写程序,那您就可以把这个定义放在程序的最顶端:
|
需要注意的是,在调用 `fxsdk` 来编译的时候,**这个工具会主动告诉编译器计算器的型号是什么**,所以在编译的时候,**就算您不定义宏也不会报错**。这里只是为了在开发的时候能够获取正确的代码提示罢了。
|
||||||
|
|
||||||
|
但是您可能已经发现,不管是黑白屏还是彩色屏,应该都有黑色和白色才对,那为什么还是需要定义宏才可以用呢?这是因为,这两个颜色在不同的宏定义下的枚举里面的值是不一样的。请看下方的内核头文件:
|
||||||
|
|
||||||
|
使用 `FX9860G` 的 `display-fx.h`
|
||||||
|
```c
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
/* Opaque colors */
|
||||||
|
C_WHITE = 0,
|
||||||
|
C_LIGHT = 1,
|
||||||
|
C_DARK = 2,
|
||||||
|
C_BLACK = 3,
|
||||||
|
|
||||||
|
/* Monochrome operators */
|
||||||
|
C_NONE = 4,
|
||||||
|
C_INVERT = 5,
|
||||||
|
|
||||||
|
/* Gray operators */
|
||||||
|
C_LIGHTEN = 6,
|
||||||
|
C_DARKEN = 7,
|
||||||
|
|
||||||
|
} color_t;
|
||||||
|
```
|
||||||
|
|
||||||
|
使用 `FXCG50` 的 `display-cg.h`
|
||||||
|
```c
|
||||||
|
enum {
|
||||||
|
/* Compatibility with fx9860g color names */
|
||||||
|
C_WHITE = 0xffff,
|
||||||
|
C_LIGHT = 0xad55,
|
||||||
|
C_DARK = 0x528a,
|
||||||
|
C_BLACK = 0x0000,
|
||||||
|
|
||||||
|
/* Other colors */
|
||||||
|
C_RED = 0xf800,
|
||||||
|
C_GREEN = 0x07e0,
|
||||||
|
C_BLUE = 0x001f,
|
||||||
|
|
||||||
|
C_NONE = -1,
|
||||||
|
C_INVERT = -2,
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
现在回到一开始的程序上,如果您下定决心只在黑白屏或者彩色屏上写程序,那您就可以把这个定义放在程序的最顶端:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#define FX9860G
|
#define FX9860G
|
||||||
|
@ -90,15 +134,10 @@ int main(void)
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
// 用白色来清空屏幕
|
|
||||||
dclear(C_WHITE);
|
dclear(C_WHITE);
|
||||||
|
|
||||||
// 用黑色在左上角写上 Hello world!
|
|
||||||
dtext(1, 1, C_BLACK, "Hello world!");
|
dtext(1, 1, C_BLACK, "Hello world!");
|
||||||
|
dupdate();
|
||||||
|
|
||||||
// 在检测到下一次按键之前卡在这里。
|
|
||||||
// 因为在卡西欧计算器上,程序结束之后将直接返回菜单,
|
|
||||||
// 所以只有卡在这里不让它结束,才能看到程序运行结果。
|
|
||||||
getkey();
|
getkey();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -107,15 +146,13 @@ int main(void)
|
||||||
|
|
||||||
这样同样也不会有报错。但是如果您实在是不想这么写,可以让告诉编译器,默认使用黑白屏。
|
这样同样也不会有报错。但是如果您实在是不想这么写,可以让告诉编译器,默认使用黑白屏。
|
||||||
|
|
||||||
请再一次用命令面板打开 `C/C++: Edit Configurations (UI)`。
|
请再一次用命令面板打开 `C/C++: Edit Configurations (UI)`,并在“编译器参数”一栏写下:
|
||||||
|
|
||||||
在“编译器参数”一栏写下:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
-D FX9860G
|
-D FX9860G
|
||||||
```
|
```
|
||||||
|
|
||||||
这样一来,最开始的那份代码也不会有报错了。唯一需要注意的是,在调用 `fxsdk` 来编译的时候,这个工具会主动告诉编译器计算器的型号是什么,所以在编译的时候不会报错。这里只是为了在开发的时候能够获取正确的代码提示罢了。
|
这样一来,最开始的那份代码也不会有报错了。
|
||||||
|
|
||||||
## 结语
|
## 结语
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue