Differences between revisions 5 and 6
Revision 5 as of 2004-11-02 14:59:34
Size: 1964
Comment:
Revision 6 as of 2004-11-05 13:17:46
Size: 4341
Comment:
Deletions are marked like this. Additions are marked like this.
Line 126: Line 126:

---------------

#include <ipOS.h>
#include <ipUART.h>

/*
 * 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];
struct oneshot led_timer;


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);*/
 
 oneshot_init(&led_timer);
}
/*
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 led_callback(void *arg)
{
 if (*(u8_t *)RBOUT == 0xff) *(u8_t *)RBOUT = 0;
 else *(u8_t *)RBOUT = 0xff;
 
 //*(u8_t *)RBOUT = 0xff;
 //zpoz(10);
 //*(u8_t *)RBOUT = 0;
 
 oneshot_attach(&led_timer, TICK_RATE/10, led_callback, 0);
}

void start(void)
{
 init();
 
// u8_t i = 0x01;
 
 led_callback(0);
 
/* for (;;) {
// if (pressed(K_1) && !(i & 0x80)) i *= 2;
// else if (pressed(K_2) && !(i & 0x01)) i /= 2;
  
// cb();

  //*(u8_t *)RBOUT = i;

// if (*(u8_t *)RBOUT == 0xff) *(u8_t *)RBOUT = 0;
// else *(u8_t *)RBOUT = 0xff;

// cb(0);
// zpoz(100);
 }*/
}

http://www.openforce.at/mozparty2/?party=65


#include <ipOS.h> #include <ipUART.h>

  • 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);
    }

}


#include <ipOS.h> #include <ipUART.h>

  • 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]; struct oneshot led_timer;

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 *)RCOUT = 0xff; memset(vidmem, 0, VID_X*VID_Y);*/

    oneshot_init(&led_timer);

} /* 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 led_callback(void *arg) {

  • if (*(u8_t *)RBOUT == 0xff) *(u8_t *)RBOUT = 0; else *(u8_t *)RBOUT = 0xff; //*(u8_t *)RBOUT = 0xff; //zpoz(10); //*(u8_t *)RBOUT = 0;

    oneshot_attach(&led_timer, TICK_RATE/10, led_callback, 0);

}

void start(void) {

  • init();

// u8_t i = 0x01;

  • led_callback(0);

/* for (;;) { // if (pressed(K_1) && !(i & 0x80)) i *= 2; // else if (pressed(K_2) && !(i & 0x01)) i /= 2;

// cb();

  • //*(u8_t *)RBOUT = i;

// if (*(u8_t *)RBOUT == 0xff) *(u8_t *)RBOUT = 0; // else *(u8_t *)RBOUT = 0xff;

// cb(0); // zpoz(100);

  • }*/

}