summaryrefslogtreecommitdiff
path: root/tests/projects
diff options
context:
space:
mode:
authorruki <[email protected]>2022-05-10 15:08:59 +0800
committerGitHub <[email protected]>2022-05-10 15:08:59 +0800
commit4ceb56296bccbefeab9568b4391cf8f01b114ff7 (patch)
tree72977d2ee347ff4a73b39333cd72db73e853f046 /tests/projects
parent8cbd906643c7034ff53f44660ef84ee0f3f449ff (diff)
parent1f87afd7f19f754ae2206d0cfabdc739f81ff412 (diff)
Merge pull request #2349 from DawnMagnet/dev
add keil-c51 toolchain & rules & review
Diffstat (limited to 'tests/projects')
-rw-r--r--tests/projects/embed/c51/hello/src/main.c50
-rw-r--r--tests/projects/embed/c51/hello/xmake.lua4
2 files changed, 54 insertions, 0 deletions
diff --git a/tests/projects/embed/c51/hello/src/main.c b/tests/projects/embed/c51/hello/src/main.c
new file mode 100644
index 000000000..bdab759d9
--- /dev/null
+++ b/tests/projects/embed/c51/hello/src/main.c
@@ -0,0 +1,50 @@
+#include <reg52.h>
+
+#define REP(i, j) for(i = 0; i < j; ++i)
+sbit control = P3 ^ 2;
+
+void delay_ms(unsigned int n) {
+ unsigned int i, j;
+ for (j = n; j > 0; j--)
+ for (i = 112; i > 0; i--);
+}
+
+
+int i;
+
+void set(unsigned int x) {
+ P1 = x;
+ delay_ms(100);
+}
+
+void left_fill() {
+ REP(i, 8) set(0xFF >> i);
+}
+
+void right_fill() {
+ REP(i, 8) set((0xFF >> (7 - i)) ^ 0xFF);
+}
+
+void left_erase() {
+ REP(i, 8) set((0xFF >> (7 - i)));
+}
+
+void right_erase() {
+ REP(i, 8) set((0xFF >> i) ^ 0xFF);
+}
+
+int main() {
+ P1 = 0xFF;
+ P3 = 0xFF;
+ while (1) {
+ if (control == 0) {
+ left_fill();
+ left_erase();
+ right_fill();
+ right_erase();
+ } else {
+ set(0x55);
+ set(0xAA);
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/projects/embed/c51/hello/xmake.lua b/tests/projects/embed/c51/hello/xmake.lua
new file mode 100644
index 000000000..be1e170df
--- /dev/null
+++ b/tests/projects/embed/c51/hello/xmake.lua
@@ -0,0 +1,4 @@
+target("hello")
+ add_rules("c51.binary")
+ set_toolchains("c51")
+ add_files("src/main.c") \ No newline at end of file