⇤ ← Revision 1 as of 2004-10-26 00:02:20
Size: 49
Comment:
|
Size: 1890
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Zapisnik na blbosti = | #include <ipOS.h> #include <ipUART.h> |
Line 3: | Line 4: |
Zatim tu nic neni... | /* * IP2022 configuration block */ CONFIG_BLOCK ( FUSE0(FUSE0_XTAL | FUSE0_PIN_DIV1 | FUSE0_POUT_DIV2 | FUSE0_WUDP_128us | FUSE0_WUDX_1ms), FUSE1(0), OSC1_FREQ, "UBICOM", "starter", CONFIG_VER(0, 0, 0, 0), CONFIG_DATE(0, 0, 0), CONFIG_DATE(0, 0, 0) ); #if defined(DEBUG) #define RUNTIME_DEBUG 1 #else #define RUNTIME_DEBUG 0 #endif THIS_FILE("main"); #define K_1 0x11 #define K_2 0x12 #define K_3 0x14 #define K_A 0x18 #define K_4 0x21 #define K_5 0x22 #define K_6 0x24 #define K_B 0x28 #define K_7 0x41 #define K_8 0x42 #define K_9 0x44 #define K_C 0x48 #define K_STAR 0x81 #define K_0 0x82 #define K_HASH 0x84 #define K_D 0x88 #define VID_X 40 #define VID_Y 30 u8_t vidmem[VID_X*VID_Y]; void zpoz(u16_t t) { u16_t i, j; for (i = 0; i < t; i++) for (j = 0; j < t; j++) {} } void init(void) { debug_init(); heap_add((addr_t)(&_bss_end), (addr_t)(RAMEND - (DEFAULT_STACK_SIZE - 1)) - (addr_t)(&_bss_end)); timer_init(); *(u8_t *)RBDIR = 0x00; *(u8_t *)RCOUT = 0xff; memset(vidmem, 0, VID_X*VID_Y); } u8_t getkey() { u8_t k = 0; *(u8_t *)RCDIR = 0x0f; zpoz(10); k |= *(u8_t *)RCIN & 0x0f; *(u8_t *)RCDIR = 0xf0; zpoz(10); k |= *(u8_t *)RCIN & 0xf0; return k; } u8_t pressed(u8_t k) { if ((getkey() & k) == k) return 1; return 0; } void drawline(u8_t y) { u8_t x = 0; for (x = 0; x < VID_X; x++) { *(u8_t *)RBOUT = vidmem[y*VID_Y+x]; } } void draw() { u8_t y = 0; for (y = 0; y < VID_Y; y++) drawline(y); } void start(void) { init(); u8_t i = 0x01; for (;;) { if (pressed(K_1) && !(i & 0x80)) i *= 2; else if (pressed(K_2) && !(i & 0x01)) i /= 2; *(u8_t *)RBOUT = i; zpoz(100); } } |
CONFIG_BLOCK (
- FUSE0(FUSE0_XTAL | FUSE0_PIN_DIV1 | FUSE0_POUT_DIV2 | FUSE0_WUDP_128us | FUSE0_WUDX_1ms), FUSE1(0), OSC1_FREQ, "UBICOM", "starter", CONFIG_VER(0, 0, 0, 0), CONFIG_DATE(0, 0, 0), CONFIG_DATE(0, 0, 0) );
#if defined(DEBUG) #define RUNTIME_DEBUG 1 #else #define RUNTIME_DEBUG 0 #endif
THIS_FILE("main");
#define K_1 0x11 #define K_2 0x12 #define K_3 0x14 #define K_A 0x18 #define K_4 0x21 #define K_5 0x22 #define K_6 0x24 #define K_B 0x28 #define K_7 0x41 #define K_8 0x42 #define K_9 0x44 #define K_C 0x48 #define K_STAR 0x81 #define K_0 0x82 #define K_HASH 0x84 #define K_D 0x88
#define VID_X 40 #define VID_Y 30 u8_t vidmem[VID_X*VID_Y];
void zpoz(u16_t t) {
- u16_t i, j;
for (i = 0; i < t; i++)
for (j = 0; j < t; j++) {}
}
void init(void) {
- debug_init();
heap_add((addr_t)(&_bss_end), (addr_t)(RAMEND - (DEFAULT_STACK_SIZE - 1)) - (addr_t)(&_bss_end)); timer_init();
- (u8_t *)RBDIR = 0x00;
- (u8_t *)RCOUT = 0xff; memset(vidmem, 0, VID_X*VID_Y);
}
u8_t getkey() {
- u8_t k = 0;
- (u8_t *)RCDIR = 0x0f; zpoz(10);
k |= *(u8_t *)RCIN & 0x0f;
- (u8_t *)RCDIR = 0xf0; zpoz(10);
k |= *(u8_t *)RCIN & 0xf0; return k;
}
u8_t pressed(u8_t k) {
if ((getkey() & k) == k) return 1; return 0;
}
void drawline(u8_t y) {
- u8_t x = 0;
for (x = 0; x < VID_X; x++) {
- (u8_t *)RBOUT = vidmem[y*VID_Y+x];
}
void draw() {
- u8_t y = 0;
for (y = 0; y < VID_Y; y++)
- drawline(y);
}
void start(void) {
- init(); u8_t i = 0x01; for (;;) {
if (pressed(K_1) && !(i & 0x80)) i *= 2; else if (pressed(K_2) && !(i & 0x01)) i /= 2;
- (u8_t *)RBOUT = i; zpoz(100);
}