Exemplo n.º 1
0
/**
 * Hangs up the modem if user online. Whether using modem or not, sets
 * hangup to 1.
 */
void hang_it_up() {
  hangup = true;
#if !defined( __unix__ ) && !defined( __APPLE__ )

  if (!ok_modem_stuff) {
    return;
  }

  GetSession()->remoteIO()->dtr(false);
  if (!GetSession()->remoteIO()->carrier()) {
    return;
  }

  wait1(9);
  if (!GetSession()->remoteIO()->carrier()) {
    return;
  }

  wait1(9);
  if (!GetSession()->remoteIO()->carrier()) {
    return;
  }
  int i = 0;
  GetSession()->remoteIO()->dtr(true);
  while (i++ < 2 && GetSession()->remoteIO()->carrier()) {
    wait1(27);
    rputs("\x1\x1\x1");
    wait1(54);
    rputs((modem_i->hang[0]) ? modem_i->hang : "ATH\r");
    wait1(6);
  }
  GetSession()->remoteIO()->dtr(true);
#endif
}
Exemplo n.º 2
0
extern "C" int main(int argc, char *argv[]) {
	checkpointNext("Normal (FIFO):");
	{
		SceUID fpl = sceKernelCreateFpl("fpl", PSP_MEMORY_PARTITION_USER, 0, 0x100, 1, NULL);
		void *data;
		sceKernelAllocateFpl(fpl, &data, NULL);
		FplWaitThread wait1("waiting thread 1", fpl, NO_TIMEOUT, 300, 0x30);
		FplWaitThread wait2("waiting thread 2", fpl, NO_TIMEOUT, 300, 0x34);
		FplWaitThread wait3("waiting thread 3", fpl, NO_TIMEOUT, 300, 0x31);
		sceKernelFreeFpl(fpl, data);
		schedfFpl(fpl);
		sceKernelDelayThread(200000);
		sceKernelDeleteFpl(fpl);
	}

	checkpointNext("Priority:");
	{
		SceUID fpl = sceKernelCreateFpl("fpl", PSP_MEMORY_PARTITION_USER, PSP_FPL_ATTR_PRIORITY, 0x100, 1, NULL);
		void *data;
		sceKernelAllocateFpl(fpl, &data, NULL);
		FplWaitThread wait1("waiting thread 1", fpl, NO_TIMEOUT, 300, 0x30);
		FplWaitThread wait2("waiting thread 2", fpl, NO_TIMEOUT, 300, 0x34);
		FplWaitThread wait3("waiting thread 3", fpl, NO_TIMEOUT, 300, 0x31);
		sceKernelFreeFpl(fpl, data);
		schedfFpl(fpl);
		sceKernelDelayThread(200000);
		sceKernelDeleteFpl(fpl);
	}
	return 0;
}
Exemplo n.º 3
0
void lcd_init(void)
{
	wait3();						/*15msウエイト*/
	lcdwriteinit( 0x03 );			/*LCDファンクションセット*/
	wait2();						/*4.1msウエイト*/
	lcdwriteinit( 0x03 );			/*LCDファンクションセット*/
	wait1();						/*0.1msウエイト*/
	lcdwriteinit( 0x03 );			/*LCDファンクションセット*/
	wait1();
	lcdwriteinit( 0x02 );			/*LCDデータを4ビット長に設定*/
	wait1();
	lcdwrite1command(0x28);			/*4bit、2行文、5×7ドットに設定*/
	wait1();

	/* 	ここまでで4ビット×2回のデータ転送ができるように設定されたので
	この後はビジーチェックをしてからデータ転送を行なう。 */
	
	while(BUSY == lcdbusycheck())	/*LCDビジーチェック*/
	;
	lcdwrite1command(0x08);			/*表示オフ*/

	while(BUSY == lcdbusycheck())	/*LCDビジーチェック*/
	;
	lcdwrite1command(0x01);			/*表示クリア*/

	while(BUSY == lcdbusycheck())	/*LCDビジーチェック*/
	;
	lcdwrite1command(0x06);			/*エントリーモード、インクリメント*/

	while(BUSY == lcdbusycheck())	/*LCDビジーチェック*/
	;
	lcdwrite1command(0x0c);			/*表示オン、カーソルオフ*/

}
Exemplo n.º 4
0
void main() {
	// set all pins of PORTB as output
	DDRB = 0xff;
	
	// toggle PORTB every 500ms (using 16Mhz clock)
	while(1) {
		toggle();
		wait1(TIMER1_PRESCALER_1024, 7812U);
	}
}