コード例 #1
0
ファイル: Geigerct.c プロジェクト: Bediko/r0ket
static uint8_t mainloop() {
	uint32_t ioconbak = IOCON_PIO1_11;

	uint32_t volatile oldCount=IntCtr;
	uint32_t perMin=0; // counts in last 60 s
	uint32_t startTime=_timectr;
	uint8_t button;
		IOCON_PIO1_11 = 0;
		while (1) {
			//GPIO_GPIO0DATA&=~(1<<11);
			IOCON_PIO1_11 = ioconbak;
			GPIO_GPIO1DATA &= ~(1 << 7);
			GPIO_GPIO1DATA &= ~(1 << 11);
			lcdClear();

			lcdPrintln("   Geiger");
			lcdPrintln("   Counter");
			// ####
			for (int i=0; i< (14*( _timectr-startTime))/(60*100);i++) {
				lcdPrint("#");
			}

			lcdPrintln("");
			lcdPrintln("Counts:");
			lcdPrint(" ");
			lcdPrintInt(IntCtr);
			lcdPrintln(" total");
			lcdPrint(" ");
			lcdPrintInt(  perMin);
			lcdPrintln("/min");
			// remember: We have a 10ms Timer counter
			if ((startTime+60 *100 ) < _timectr) {
				// dumb algo: Just use last 60 seconds count
				perMin=IntCtr-oldCount;
				startTime=_timectr;
				oldCount=IntCtr;
			}
			lcdRefresh();
			delayms(42);
			button = getInputRaw();

			if (button != BTN_NONE) {
				delayms(23);// debounce and wait till user release button
				while (getInputRaw()!=BTN_NONE) delayms(23);
				break;
			}
		}
		IOCON_PIO1_11 = ioconbak;
		return button;

}
コード例 #2
0
ファイル: snake.c プロジェクト: cokesme/f1rmware
static int showHighscore()
{
    int key = getInputRaw();

    renderHighscore();

    if (points>highscore) {
        // Save highscore if higher
        highscore_set(points);
    }

    while(1) {
        key = getInputWait();
        getInputWaitRelease();

        if (key&BTN_DOWN) {
            return 1;
        } else if (key&BTN_UP) {
            return 0;
        } else if (key&BTN_RIGHT) {
            highscore = 0;
            highscore_set(highscore);
            setTextColor(0xff,0b00000011);
            DoString(RESX/2-4, RESY/2-2, IntToStr(highscore,6,0));
        }

        renderHighscore();
    }
}
コード例 #3
0
ファイル: r_player.c プロジェクト: tuxcodejohn/r0ket
void playGame(void)
{
    int len;
    struct packet p;

    while(1){
        uint8_t button = getInputRaw();
        sendButton(button);
        
        while(1){
            if( flags & FLAGS_LONG_RECV )
                len = nrf_rcv_pkt_time(64,sizeof(p),(uint8_t*)&p);
            else
                len = nrf_rcv_pkt_time(32,sizeof(p),(uint8_t*)&p);
                
            if(len==sizeof(p)){
                processPacket(&p);
            }else{
                break;
            }
        }
        int rnd = getRandom() % jitter;
        delayms(interval+rnd);
    };
}
コード例 #4
0
ファイル: spam.c プロジェクト: astro/lun1k
void ram() {
    lcdClear();

    lcdPrintln("SPAM:");
    while(getInputRaw() != BTN_LEFT) {
        char c[2] = {0, 0};
        c[0] = (char)getRandom();

        uint8_t pkt[32];
        MO_TYPE_set(pkt, c[0]);
        MO_GEN_set(pkt, 0xFF);
        if (c[0] >= 'A' && c[0] <= 'Z')
            MO_TIME_set(pkt, 1313803870);
        else if (c[0] >= 'a' && c[0] <= 'z')
            MO_TIME_set(pkt, getRandom() % 16777216);
        else
            MO_TIME_set(pkt, (uint32_t)getRandom());
        strcpy((char *)MO_BODY(pkt), "chaosbay.camp.ccc.de");

        if (!mesh_sanity(pkt)) {
            lcdPrint("Sending: ");
            lcdPrintln(c);
            lcdRefresh();

            MPKT *mpkt = meshGetMessage(c[0]);
            mpkt->flags = MF_USED;
            memcpy(mpkt->pkt, pkt, 32);
        }
    }
}
コード例 #5
0
ファイル: image.c プロジェクト: cokesme/f1rmware
uint8_t lcdShowAnim(char *fname) {
    FIL file;            /* File object */
	int res;
    UINT readbytes;
	uint8_t state=0;
    uint16_t framems=0;

	res=f_open(&file, fname, FA_OPEN_EXISTING|FA_READ);
	if(res != FR_OK)
		return 1;

	getInputWaitRelease();
	while(!getInputRaw()){
		res = f_read(&file, &framems, sizeof(framems), &readbytes);
        /*
        lcdPrint("ms=");lcdPrintln(IntToStr(framems,4,0));
        lcdPrint("off=");lcdPrintln(IntToStr(f_tell(&file),4,0));
        */
        if(res != FR_OK)
            return 1;
		if(readbytes<sizeof(framems)){
			f_lseek(&file,0);
            continue;
        };
        lcdShowImage(&file);
        getInputWaitTimeout(framems);
	}

    return 0;
}
コード例 #6
0
ファイル: anim.c プロジェクト: hwhw/r0ket
void ram(void) {
	FRESULT ret;
	FATFS FatFs[1];          /* File system object for logical drive */

	//gpioSetValue (RB_LED1, CFG_LED_OFF); 
	//backlightInit();
	//
	lcdFill(0);

	ret=f_mount(0, &FatFs[0]);
	
	if(ret) {
		return;
	}

//	lcdLoadLZOImage("TESTLZO.ILZ");
//	lcdDisplay();
	ret = lcdShowLZOAnim("LZOANIM.VLZ", 80);
#ifdef SIMULAT0R
	fprintf(stderr, "ret=%d\n", ret);
#endif
	while(!getInputRaw()){
		/* nothing Yet */
            getInputWaitTimeout(1000);
	}
	return;
}
コード例 #7
0
ファイル: r_player.c プロジェクト: Bediko/r0ket
void playGame(void)
{
    int len;
    struct packet p;
    lcdPrintln("Now playing:");
    lcdPrintln(gameTitle);
    lcdRefresh();

    while(1){
        uint8_t button = getInputRaw();
        sendButton(button);
        
        while(1){
            if( flags & FLAGS_LONG_RECV )
                len = nrf_rcv_pkt_time(64,sizeof(p),(uint8_t*)&p);
            else
                len = nrf_rcv_pkt_time(32,sizeof(p),(uint8_t*)&p);
                
            if(len==sizeof(p)){
                processPacket(&p);
            }else{
                break;
            }
        }
        int rnd = getRandom() % jitter;
        delayms(interval*5+rnd);
        
        volatile uint16_t i;
        i = getRandom()&0xfff;
        while(i--);

    };
}
コード例 #8
0
ファイル: msc.c プロジェクト: cokesme/f1rmware
//# MENU MSC
void msc_menu(){
	MSCenable();
	lcdPrintln("MSC enabled.");
	getInputWaitRelease();
	while(getInputRaw()!=BTN_ENTER){
		if(getInputRaw()==BTN_RIGHT)
			lcdPrintln(".");
		lcdDisplay();
		__WFI();
	};
	lcdPrintln("disconnect");
	lcdDisplay();
	MSCdisable();
	fsReInit();
	getInputWaitRelease();
};
コード例 #9
0
ファイル: friendtracker.c プロジェクト: bigzed/r0ket
void ram(void) {
    struct NRF_CFG config;
    uint8_t buf[16];
    
    // Space to save signal strength and username.
    uint8_t count = 0;
    char usernames[8][16];
    uint8_t strength[8];

    config.nrmacs=1;
    config.maclen[0] = 16;
    config.channel = 81;
    memcpy(config.mac0, "\x01\x02\x03\x02\x01", 5);
    nrf_config_set(&config);
    lcdClear();
    lcdPrintln("Track it:");
    lcdPrintln("---------");
    lcdRefresh();
    do{
        if( nrf_rcv_pkt_time(64,sizeof(buf),buf) == 16 ){
            buf[14] = 0;
            // TODO: allow last package parameter 0x25
            if( buf[1] == 0x23 || buf[1] == 0x24){
                if(0==insertUser(usernames, strength, (char *)buf+6, buf[3],
                  count)) {
                  if(count<8) ++count;
                  printNames(usernames, strength, count);
                }
            }
        }
    }while ((getInputRaw())==BTN_NONE);
}
コード例 #10
0
ファイル: sdcard.c プロジェクト: n0p/f1rmware
//# MENU SD_USB
void menu_sdcard(void){
    lcdClear();

    sdmmc_setup();
    uint32_t r = sdmmc_acquire();

    if(r) {
        lcdPrintln("SD card found.");
        lcdPrintln("No. of blocks:");
        lcdPrintln(IntToStr(Chip_SDMMC_GetDeviceBlocks(LPC_SDMMC), 10, 0));
        lcdPrintln("in USB MSC mode");
        // SD I/O needs higher interrupt prio than USB so it works within
        // the USB callbacks
        NVIC_SetPriority(USB0_IRQn, 2);
        NVIC_SetPriority(SDIO_IRQn, 0);
        SD_MSCenable();
    } else {
        lcdPrintln("No SD card found.");
    }
    lcdDisplay();
    while(getInputRaw()==BTN_NONE){
        /* wait */
        __asm__ volatile ("nop");
    };

    lcdPrintln("goodbye!");
    lcdDisplay();
    MSCdisable();
    Chip_SDIF_DeInit(LPC_SDMMC);
}
コード例 #11
0
ファイル: final.c プロジェクト: falkorichter/r0ket
void main_final(void) {
    init_nick();
	if(GLOBAL(privacy)>2){ //firstboot
        if(execute_file("1boot.int",0,0)){
            lcdPrintln("Badge SETUP");
            lcdPrintln("error.");
            lcdPrintln("Features may");
            lcdPrintln("be broken.");
            lcdRefresh();
            getInputWait();
            getInputWaitRelease();
            GLOBAL(privacy)=0;
        }else{
            saveConfig();
        };
    };
    //checkFirstBoot();
    init_final();
    menuflags|=MENU_TIMEOUT;

    while(1){
#ifndef FINAL
        if(getInputRaw()==BTN_LEFT)
            ISPandReset();
#endif
        if(getInput()){
            handleMenu(&mainmenu);
            getInputWaitRelease();
            init_nick();
        };
        work_queue();
        fancyNickname();
    };
};
コード例 #12
0
ファイル: release.c プロジェクト: turboj/r0ket
void ram(void) {
    lcdClear();
    lcdPrintln("r0ket");
    lcdPrintln("Release: ");
    lcdPrintln(IntToStrX(getrelease(),8));
    lcdRefresh();
    while(!getInputRaw())work_queue();
}
コード例 #13
0
ファイル: cdc.c プロジェクト: cokesme/f1rmware
//# MENU CDC
void cdc_menu(){
    uint32_t prompt = 0, rdCnt = 0;
    static uint8_t g_rxBuff[256];
    CDCenable();
    lcdPrintln("CDC enabled.");
    lcdDisplay();
    getInputWaitRelease();

    while(getInputRaw()!=BTN_ENTER){
	if(getInputRaw()==BTN_RIGHT){
	    lcdPrint("status:");
	    lcdPrint(IntToStr(g_vCOM.tx_flags,3,F_HEX));
	    lcdPrint(", ");
	    lcdPrint("c=");
	    lcdPrint(IntToStr(prompt,1,F_LONG));
	    lcdPrintln(".");
	    lcdDisplay();
	    getInputWaitRelease();
	};
	if(getInputRaw()==BTN_LEFT){
	    vcom_write((uint8_t *)"Hello World!\r\n", 14);
	    getInputWaitRelease();
	};
	if ((vcom_connected() != 0) && (prompt == 0)) {
	    prompt = 1;
	}
	/* If VCOM port is opened echo whatever we receive back to host. */
	if (prompt) {
	    rdCnt = vcom_bread(&g_rxBuff[0], 256);
	    if (rdCnt) {
		vcom_write((uint8_t*)"[", 1);
		while(g_vCOM.tx_flags & VCOM_TX_BUSY) __WFI(); // Wait for buffer emtpy
		vcom_write(&g_rxBuff[0], rdCnt);
		while(g_vCOM.tx_flags & VCOM_TX_BUSY) __WFI(); // Wait for buffer emtpy
		vcom_write((uint8_t*)"]", 1);
	    }
	}
	/* Sleep until next IRQ happens */
	__WFI();
    };
    lcdPrintln("disconnect");
    lcdDisplay();
    CDCdisable();
    getInputWaitRelease();
}
コード例 #14
0
ファイル: util.c プロジェクト: Bediko/r0ket
//# MENU usb_storage
void msc_menu(void){
    lcdClear();
    lcdPrintln("MSC Enabled.");
    lcdRefresh();
    usbMSCInit();
    while(!getInputRaw())delayms(10);
    DoString(0,16,"MSC Disabled.");
    usbMSCOff();
    fsReInit();
};
コード例 #15
0
ファイル: main.c プロジェクト: andrmuel/r0ket
void main(void) {
    // Configure cpu and mandatory peripherals
    cpuInit();                                // Configure the CPU
// we do it later
//    systickInit(CFG_SYSTICK_DELAY_IN_MS);     // Start systick timer
// cpuInit already calls this
//    gpioInit();                               // Enable GPIO 
    pmuInit();                                // Configure power management
    adcInit();                                // Config adc pins to save power

    // initialise basic badge functions
    rbInit();

    initUUID(); // Cache UUID values.
  
    lcdInit(); // display

    lcdFill(0);
    lcdDisplay();
    
    switch(getInputRaw()){
        case BTN_ENTER:
            lcdPrint("ISP active");
            lcdRefresh();
            ReinvokeISP();
            break;
        case BTN_DOWN:
            lcdPrint("MSC active");
            lcdRefresh();
            usbMSCInit();
            while(1);
            break;
    };

    fsInit();

    if( getInputRaw() == BTN_UP ){ // Reset config
            saveConfig();
    }

	wrapper(); // see applications/ subdirectory
}
コード例 #16
0
ファイル: main.c プロジェクト: miloh/f1rmware
void full_msc() {
    MSCenable();
    lcdPrintln("MSC enabled.");
    lcdDisplay();
    while(getInputRaw()!=BTN_ENTER) {
        __WFI();
    };
    lcdPrintln("MSC disabled");
    lcdDisplay();
    MSCdisable();
};
コード例 #17
0
ファイル: scr0llr.c プロジェクト: astro/lun1k
void ram() {
  char key;
  int x = 0;
  for(key = 0; key = getInputRaw(), key != BTN_DOWN; ) {
    x = (x + 1) % 64;
    lcdFill(0);
    DoString(x, 0, "scr0llr");
    lcdDisplay();
    delayms_queue(20);
  }
}
コード例 #18
0
ファイル: main.c プロジェクト: ravench/f1rmware
int main(uint32_t startloc) {
	cpu_clock_init();
	ssp_clock_init();
	systickInit();

//	cpu_clock_set(204);

	SETUPgout(EN_VDD);
	SETUPgout(MIXER_EN);
	SETUPgout(MIC_AMP_DIS);

	SETUPgout(LED1);
	SETUPgout(LED2);
	SETUPgout(LED3);
	SETUPgout(LED4);
	inputInit();
	flashInit();

	lcdInit();
	fsInit();
	lcdFill(0xff); /* Display BL Image here */

	sli=startloc;

	if (startloc != (uintptr_t)&_app_start){ /* not booted via DFU, do autoboot */ 
        char filename[FLEN];
        switch(getInputRaw()){
            case BTN_LEFT:
                getInputWaitRelease();
                doRealExec(1);
                break;
            case BTN_UP:
                doMSC();
            default:
            case BTN_NONE:
                readTextFile(BOOTCFG, filename, FLEN);
                lcdPrintln("Booting:");
                lcdPrintln(filename);
                bootFile(filename);
                break;
		};
	};
	static const struct MENU main={ "Bootloader", {
		{ "Exec Firmware", &doExec},
		{ "MSC", &doMSC},
		{ "Flash Boot Ldr", &doFlash},
		{ "Info", &doInfo},
		{NULL,NULL}
	}};
	do {
		handleMenu(&main);
	}while(1);
}
コード例 #19
0
ファイル: ppack.c プロジェクト: cokesme/f1rmware
//# MENU Apack
void ppack_menu() {
	lcdClear();
	lcdPrintln("PPack port");
	lcdPrintln("");
	lcdPrintln("up=enable");
	lcdDisplay();
	dac_init(false);

	cpu_clock_set(204); // WARP SPEED! :-)
	hackrf_clock_init();
	rf_path_pin_setup();
	/* Configure external clock in */
	scu_pinmux(SCU_PINMUX_GP_CLKIN, SCU_CLK_IN | SCU_CONF_FUNCTION1);

	sgpio_configure_pin_functions();

	ON(EN_VDD);
	ON(EN_1V8);
	OFF(MIC_AMP_DIS);
	complex_s8_t * samples;

	while(1){
		switch(getInputRaw()){
			case BTN_UP:
			    // ON(MIXER_EN); // hackrf does this
			    cpu_clock_set(204); // WARP SPEED! :-)
			    si5351_init();
			    portapack_init();
			    getInputWaitRelease();

			    break;
			case BTN_DOWN:
			    lcdPrintln("file");
			    writeFile("samples.8", (char*)0x20000000,(uintptr_t)s8ram-0x20000000);
			    break;
			case BTN_LEFT:
			    lcdPrintln("reset");
			    s8ram=(complex_s8_t*)0x20000000;
			    break;
			case BTN_RIGHT:
				break;
			case BTN_ENTER:
				return;
		};
		TOGGLE(LED2);
		delayms(40);
		lcdPrint(IntToStr((uintptr_t)s8ram,8,F_HEX));
		lcdPrint(" ");
		lcdPrintln(IntToStr(sctr,7,F_LONG));
		lcdDisplay();
	};
};
コード例 #20
0
ファイル: snake.c プロジェクト: cokesme/f1rmware
static void handle_input()
{
    int key = getInputRaw(), dir_old = snake.dir;

    if (key&BTN_UP && dir_old != 1)
        snake.dir = 3;
    else if (key&BTN_DOWN && dir_old != 3)
        snake.dir = 1;
    else if (key&BTN_LEFT && dir_old != 0)
        snake.dir = 2;
    else if (key&BTN_RIGHT && dir_old !=2)
        snake.dir = 0;
}
コード例 #21
0
ファイル: snake2.c プロジェクト: BartDeWaal/f1rmware
static int showHighscore()
{
    int key = getInputRaw(); //throw away pending keypress
    char nick[20];
    uint32_t score = 0;

    highscore_set(points,GLOBAL(nickname));
    score = highscore_get(nick);

    lcdClear();
    setTextColor(0xff,0x00);
    DoString(0,RESY/2-33, "  Your Score");
    // Display own score in green color, if it's higher than high score, else red
    if (points > score) {
        setTextColor(0xff,0b00011100);
    } else {
        setTextColor(0xff,0b11100000);
    }
    DoString(RESX/2-4, RESY/2-25, IntToStr(points,6,0));
    setTextColor(0xff,0x00);
    DoString(0,RESY/2-10, "  Highscore");
    setTextColor(0xff,0b11100000);
    DoString(RESX/2-4, RESY/2-2, IntToStr(score,6,0));
    setTextColor(0xff,0x00);
    DoString(0, RESY/2+18, "  UP to play ");
    DoString(0, RESY/2+26, "DOWN to quit ");

    lcdDisplay();

    while(1) {
        key = getInputRaw();
        if (key&BTN_DOWN) {
            return 1;
        } else if (key&BTN_UP) {
            return 0;
        }
    }
}
コード例 #22
0
ファイル: util.c プロジェクト: Bediko/r0ket
// //# MENU lcdread
void lcdrtest(void){
    lcdClear();
    lcdPrint("ID1:"); lcdPrintInt(lcdRead(128+64+16+8  +2  )); lcdNl();
    lcdPrint("ID2:"); lcdPrintInt(lcdRead(128+64+16+8  +2+1)); lcdNl();
    lcdPrint("ID3:"); lcdPrintInt(lcdRead(128+64+16+8+4    )); lcdNl();
    lcdPrint("ID4:"); lcdPrintInt(lcdRead(128+64+16+8+4  +1)); lcdNl();
    lcdPrint("Tmp:"); lcdPrintInt(lcdRead(128+64+16+8+4+2  )); lcdNl(); 
    lcdPrint("VM:"); lcdPrintInt(lcdRead(128+64+16+8+4+2+1)); lcdNl(); 
//    lcd_select(); mylcdWrite(0,128+32+8+4+1); lcd_deselect();
    delayms(10);
    lcdInit();
    lcdRefresh();
    while(!getInputRaw())delayms(10);
};
コード例 #23
0
ファイル: mandel.c プロジェクト: cokesme/f1rmware
void ram(void) {
    int key;
    mandelInit();
    while (1) {
        lcdDisplay();
        mandelMove();
        mandelUpdate();
        // Exit on enter+left
        key=getInputRaw();
        if(key== BTN_ENTER + BTN_LEFT)
            return;
    }
    return;
}
コード例 #24
0
ファイル: nickname.c プロジェクト: fpletz/f1rmware
//# MENU nick changeFont
void doFont(void){
    getInputWaitRelease();
    if( selectFile(GLOBAL(nickfont),"F0N") != 0){
        lcdPrintln("No file selected.");
        return;
    };
	writeFile("font.cfg",GLOBAL(nickfont),strlen(GLOBAL(nickfont)));

    lcdClear();
    setIntFont(&Font_7x8);
    lcdPrintln("Test:");
    setExtFont(GLOBAL(nickfont));
    lcdPrintln(GLOBAL(nickname));
    lcdDisplay();
    setIntFont(&Font_7x8);
    while(!getInputRaw())delayms(10);
}
コード例 #25
0
ファイル: main.c プロジェクト: FlorianHeigl/f1rmware
int main(uint32_t startloc) {
	cpu_clock_init();
	ssp_clock_init();
	systick_set_reload(208000);
	systick_set_clocksource(0);
	systick_interrupt_enable();
	systick_counter_enable();

//	cpu_clock_pll1_max_speed();

	SETUPgout(EN_VDD);
	SETUPgout(MIXER_EN);

	SETUPgout(LED1);
	SETUPgout(LED2);
	SETUPgout(LED3);
	SETUPgout(LED4);
	inputInit();
	flashInit();

    lcdInit();
	fsInit();
    lcdFill(0xff); /* Display BL Image here */

	sli=startloc;

	if (startloc != (uintptr_t)&_app_start){ /* not booted via DFU, do autoboot */ 
		if (getInputRaw()!=BTN_LEFT){
			char filename[FLEN];
			readTextFile(BOOTCFG, filename, FLEN);
			lcdPrintln("Fname");
			lcdPrintln(filename);
			bootFile(filename,0);
		};
	};
	static const struct MENU main={ "Bootloader", {
		{ "Info", &doInfo},
		{ "Exec", &doExec},
		{ "Flash", &doFlash},
		{NULL,NULL}
	}};
	handleMenu(&main);
	return 0;
}
コード例 #26
0
ファイル: bfsk.c プロジェクト: cokesme/f1rmware
//# MENU BPSK
void bfsk_menu() {
    lcdClear();
    lcdPrintln("ENTER to go back");
    lcdPrintln("L/R/U/D to xmit");
    rflib_lcdDisplay();
    getInputWaitRelease();

    cpu_clock_set(204);
    CDCenable();

    rflib_init();
    rflib_bfsk_init();
    rflib_set_freq(FREQSTART);
    rflib_bfsk_receive();

    while(1) {
        switch (getInputRaw()) {
            case BTN_UP:
                transmit("up");
                break;
            case BTN_DOWN:
                transmit("down");
                break;
            case BTN_RIGHT:
                transmit("right");
                break;
            case BTN_LEFT:
                transmit("left");
                break;
            case BTN_ENTER:
                goto stop;
        }
        if(vcom_connected()) {
            /* check if we got data from USB-CDC, transmit it, if so. */
            uint8_t sendbuf[255];
            uint32_t read = vcom_bread(sendbuf, 255);
            if(read > 0) rflib_bfsk_transmit(sendbuf, read, true);
        }
        receive();
    }
stop:
    rflib_shutdown();
    return;
}
コード例 #27
0
ファイル: nick_plain.c プロジェクト: Bediko/r0ket
void ram(void) {
    int dx=0;
	int dy=0;
    static uint32_t ctr=0;
	ctr++;

	setExtFont(GLOBAL(nickfont));
	dx=DoString(0,0,GLOBAL(nickname));
    dx=(RESX-dx)/2;
    if(dx<0)
        dx=0;
    dy=(RESY-getFontHeight())/2;

	lcdClear();
	DoString(dx,dy,GLOBAL(nickname));
	lcdRefresh();

    while(getInputRaw()==BTN_NONE){
        delayms_queue_plus(10,0);
    };
    return;
}
コード例 #28
0
ファイル: funk.c プロジェクト: Bediko/r0ket
void f_recv(void){
    __attribute__ ((aligned (4))) uint8_t buf[32];
    int len;
    do{

        lcdClear();
        len=nrf_rcv_pkt_time_encr(1000,sizeof(buf),buf,enctoggle?testkey:NULL);

        if(len==0){
            lcdPrintln("No pkt (Timeout)");
        };
        lcdPrint("Size:");lcdPrintInt(len);lcdNl();
        lcdPrint("1:");lcdPrintIntHex( *(int*)(buf+ 0) ); lcdNl();
        lcdPrint("2:");lcdPrintIntHex( *(int*)(buf+ 4) ); lcdNl();
        lcdPrint("3:");lcdPrintIntHex( *(int*)(buf+ 8) ); lcdNl();
        lcdPrint("4:");lcdPrintIntHex( *(int*)(buf+12) ); lcdNl();

        len=crc16(buf,14);
        lcdPrint("crc:");lcdPrintShortHex(len); lcdNl();
        lcdDisplay();
    }while ((getInputRaw())==BTN_NONE);

};
コード例 #29
0
ファイル: main.c プロジェクト: neosam/f1rmware
void full_msc(){
	MSCenable();
	lcdPrintln("FLASHMSC enabled.");
	lcdNl();
	lcdNl();
	lcdDisplay();
	while(getInputRaw()!=BTN_ENTER){
        uint32_t min = mscDisk_minAddressWR();
        uint32_t max = mscDisk_maxAddressWR();
        lcdMoveCrsr(0,-16);
        lcdPrint("MIN:");
        lcdPrintln(IntToStr(min,8,F_SSPACE));
        lcdPrint("MAX:");
        lcdPrintln(IntToStr(max,8,F_SSPACE));
        lcdDisplay();
        if(min == 0 && max == 2097151) {
            break;
        }
	};
	lcdPrintln("FLASHMSC disabled");
	lcdDisplay();
	MSCdisable();
};
コード例 #30
0
ファイル: people.c プロジェクト: C3MA/r0ket
void ram(void) {
    struct NRF_CFG config;
    uint8_t buf[16];

    config.nrmacs=1;
    config.maclen[0] = 16;
    config.channel = 81;
    memcpy(config.mac0, "\x01\x02\x03\x02\x01", 5);
    nrf_config_set(&config);
    lcdClear();
    lcdPrintln("People nearby:");
    //lcdPrint("nearby:");
    lcdRefresh();
    do{
        if( nrf_rcv_pkt_time(64,sizeof(buf),buf) == 16 ){
            buf[14] = 0;
            if( buf[1] == 0x23 || buf[1] == 0x24){
                lcdPrintln((char*)(buf+6));
                //lcdPrintln("foo");
            }
            lcdRefresh();
        }
    }while ((getInputRaw())==BTN_NONE);
}