Example #1
0
int main() {
 	TIL311 = 0x98;
 	
 	srand();
 	
 	sem_init(&lcd_sem);
	
	lcd_init();
	serial_start(SERIAL_SAFE);
	
	puts("Hello! Starting tasks.\n");
    
    enter_critical();
    
    create_task(&task_time,0);
    create_task(&task_echo,0);
  	create_task(&task_scroller,0);
    create_task(&task_wav_play,0);
    
  /*	for (int i = 0; i < 16; i++)
  		create_task(&breeder_task,0);*/
  		
  	leave_critical();
  	yield();  
  	
  	puts("Tasks started, main() returning.\n");	
  	
	return 0;
}
Example #2
0
void riuc4_start(serial_t *serial, char *port_dev) {
    riuc4_t *riuc4 = (riuc4_t *)serial->user_data;
    riuc4->uart4_command.command[0] = 0;
    riuc4->uart4_command.command[1] = 0;
    riuc4->uart4_command.command[2] = 0;
    riuc4->uart4_command.command[3] = 0;
    strncpy(serial->port_dev, port_dev, sizeof(serial->port_dev));
    serial_start(serial);
}
Example #3
0
int main(int argc, char *argv[]) 
{
	struct serialsosurce ss;
	serial_start(&ss);
#define OPEN  1
#define CLOSE 0

	while (1) {
	//	controller_set(&ss, 120, CLOSE);

	//	int status;
	//	controller_get(&ss, 120, &status);

	//	printf("controller %d status is %d\n", 120, status);

	//	sleep(3);
	
	//	controller_set(&ss, 120, CLOSE);
	//	sleep(3);

	//	sensor_set(&ss, 20, 100);
	//	int status;
	//	sensor_get(&ss, 20, &status);

	//	printf("sensor %d status is %d\n", 20, status);
	//	
	//	sleep(3);

		struct sensorX sx;
		int id[] = {1, 10, 20, 40};
		int data[] = {10, 20, 30, 40};
		
		sensorX_init(&sx, sizeof(id)/sizeof(int), id, data);
		sensorX_set(&ss, &sx);

		struct sensorX sx_test;
		int id2[] = {1, 10, 20, 40};
		sensorX_init(&sx_test, sizeof(id2)/sizeof(int), id2, NULL);
		sensorX_get(&ss, &sx_test);
	
		printf("Sensor Data:\n");
		printf("=========================\n");
		int i;
		for (i = 0; i < sx_test.n; i++) {
			printf("sensor id[%d] = %d\n", sx_test.id[i], sx_test.data[i]);
		}
		printf("=========================\n");
	
		sleep(3);
	}

	while (1) getchar();
	serial_stop(&ss);

	return 0;
}
Example #4
0
void
main(void) {
    if (jump_token == JUMP_TOKEN) {
        jump_token = 0;
        jump_application();
    }
    setup_hsi();
    serial_start(&Serial1, 115200);
    ASSERT(xTaskCreate(main_thread, "main", MAIN_STACK_SIZE, NULL,
                THREAD_PRIO_MAIN, &thread_main));
    vTaskStartScheduler();
}
Example #5
0
int main() {
    TIL311 = 0x01;
    
    default_interrupts();
    
    serial_start(SERIAL_SAFE);
    millis_start();

	lcd_init();
	lcd_puts("Hello from C,\non the 68008!");

    beep(700,250);
    DELAY_MS(50);
 	beep(500,300);
  	DELAY_MS(100);
  	beep(700,500);
  	DELAY_MS(500);
  	
  	play_rtttl(songs[0]);
   
    while(true) {
        TIL311 = 0xCC;
        DELAY_MS(1000);

        TIL311 = 0xC0;
        DELAY_MS(1000);
        
        TIL311 = 0xDE;
        DELAY_MS(1000);
        
        TIL311 = 0x00;
        DELAY_MS(1000);
               
        if(serial_available()) {
			int16_t ch;
			lcd_clear();
			uint8_t c = 0;
			
			while ((ch = getc()) != -1) {
				putc(ch);
				lcd_data(ch);
				if (c++ == 15)
					lcd_cursor(0,1);
			}
        } else {
        	lcd_clear();
        	lcd_puts("Time since boot:");
        	lcd_cursor(0,1);
        	lcd_printf("%3d.%02d seconds",millis()/1000, (millis()%1000)/10);
        }
    }
}
Example #6
0
int main() {
    TIL311 = 0x01;

    serial_start(SERIAL_SAFE);
    //millis_start();
    sei();

    uint8_t *addr = 0x40000;

    for (uint16_t i = 0; i < 300; i++)
        *(addr++) = i & 0xFF;

    return_to_loader();
}
Example #7
0
int main() {
    serial_start(SERIAL_SAFE);

    // set up timer B
    TBDR = 29;   // approx 15.9 khz out
	TBCR = 0x1;  // prescaler of 4
       
    // wait for the fifo to clear of garbage
    DELAY_MS(50);
    
    wav_start = song_bin;
    wav_end = wav_start + song_len - 1;
    wav_ptr = wav_start;
    
    if ((*(uint32_t*)256754) != 0xDEADBEEF) {
        (*(uint32_t*)256754) = 0xDEADBEEF; 
    } else {
        (*(uint32_t*)256754) = 0; 
        wav_start = 0x50000;
        wav_ptr = wav_start;
        
        for (uint32_t i = 0; i < 65536; i++) 
            *(wav_ptr++) = i&0xFF;
            
        wav_end = wav_ptr-1;
        wav_ptr = wav_start;
    }
   
    // set up the reload interrupt
	__vectors.user[MFP_INT + MFP_GPI2 - USER_ISR_START] = &wav_isr;

    AER |= (1 << 2);
	IERB |= INTR_GPI2;
	IMRB |= INTR_GPI2;
	    
    // prime the fifo
    memcpy(IO_DEV3, wav_ptr, 512);
    wav_ptr += 512;
       
    sei();
	
	puts("Playback started.\n");
		 
    // wait for end of clip & loop.
    while(1) {
        TIL311 = ((wav_ptr - wav_start) * ((wav_end-wav_start)/16000) / (wav_end-wav_start));
    }
}
Example #8
0
/* start at command */
void atcmd_start(void)
{
	at_serial_para_t para;

	at_cmd_init();
	at_serial(&para);

	//serial_init(SERIAL_UART_ID, 115200, UART_DATA_BITS_8, UART_PARITY_NONE, UART_STOP_BITS_1, para.hwfc);
	serial_init(SERIAL_UART_ID, para.baudrate, UART_DATA_BITS_8, UART_PARITY_NONE, UART_STOP_BITS_1, para.hwfc);

	serial_start();

	/* start atcmd task */
	if (OS_ThreadCreate(&g_atcmd_thread,
		                "atcmd",
		                atcmd_task,
		                NULL,
		                OS_THREAD_PRIO_CONSOLE,
		                ATCMD_THREAD_STACK_SIZE) != OS_OK) {
		ATCMD_ERR("create serial task failed\n");
		return ;
	}
}
Example #9
0
int main(int argc, char **argv)
{
	time_t begin = time(NULL);
	autopilot_initialize();

	serial_start("/dev/ttyUSB0");
	printf("Opened serial connection.\n");
	read_messages(); // first read to make sure that there is a connection
	printf("Acquired initial read\n");
	autopilot_start();
	printf("locked data from read_messages()\n");

	send_pre_arm_void_commands();
	// arm_sequence();
	
	usleep(200000); // 200ms = 5Hz
	
	offboard_control_sequence();
	usleep(200000);

	mavlink_set_position_target_local_ned_t set_point;
	for(int i = 0; i < 30; i++){
		// printf("Current Initial position : x = %f , y = %f , z = %f\n", ip.x, ip.y, ip.z);
		printf("%d: Current set point : x = %f, y = %f z=%f\n", i, ip.x, ip.y, ip.z - 0.25);
		set_yaw (ip.yaw, &set_point);
		set__(- 1.0 + ip.x , ip.y, ip.z - 2, &set_point);
		usleep(100000);
	}

	// disarm_sequence();
	usleep(200000);

	disable_offboard_control_sequence();
	usleep(200000);

	return 0;
}
Example #10
0
static void
main_thread(void *pdata) {
    QueueSetHandle_t qs;
    QueueSetMemberHandle_t active;

    ASSERT((qs = xQueueCreateSet(SERIAL_RX_SIZE * 3)));
    serial_start(cli_serial, 115200, qs);
    serial_start(&Serial4, 57600, qs);
    serial_start(&Serial5, cfg.gps_baud_rate ? cfg.gps_baud_rate : 57600, qs);
    cli_set_output(cli_serial);
    log_start(cli_serial);
    cl_enabled = 1;

    load_eeprom();
    cfg.flags &= ~FLAG_HOLDOVER_TEST;
    if (cfg.flags & FLAG_GPSEXT) {
        gps_serial = &Serial5;
    } else {
        gps_serial = &Serial4;
    }
    if (!cfg.holdover) {
        cfg.holdover = 60;
    }
    if (!cfg.loopstats_interval) {
        cfg.loopstats_interval = 60;
    }
    ppscapture_start();
    vtimer_start();
    tcpip_start();
    test_reset();
    cli_banner();
    if (!(cfg.flags & FLAG_GPSEXT)) {
        ublox_configure();
        if (HAS_FEATURE(PPSEN) && (cfg.flags & FLAG_PPSEN)) {
            GPIO_OFF(PPSEN);
        }
    }
    cl_enabled = 0;
    while (1) {
        watchdog_main = 5;
        active = xQueueSelectFromSet(qs, pdMS_TO_TICKS(1000));
        if (active == cli_serial->rx_q) {
            int16_t val = serial_get(cli_serial, TIMEOUT_NOBLOCK);
            ASSERT(val >= 0);
            cli_feed(val);
        } else if (active == gps_serial->rx_q) {
            int16_t val = serial_get(gps_serial, TIMEOUT_NOBLOCK);
            ASSERT(val >= 0);
            gps_byte_received(val);
            if (cfg.flags & FLAG_GPSOUT) {
                char tmp = val;
                serial_write(&Serial5, &tmp, 1);
            }
#if 0
        } else if (active == Serial5.rx_q) {
            char tmp = serial_get(&Serial5, TIMEOUT_NOBLOCK);
            serial_write(&Serial4, &tmp, 1);
#endif
        }
    }
}
Example #11
0
int main() {
    TIL311 = 0x01;

    __vectors.address_error = &address_err;
    __vectors.bus_error = &bus_error;
    __vectors.illegal_instr = &illegal_inst;
    __vectors.divide_by_0 = &divby0;
    __vectors.uninitialized_isr = &bad_isr;
    __vectors.int_spurious = &spurious;
    __vectors.auto_level2 = &auto_lvl2;
    __vectors.priv_violation = &priv_vio;

    serial_start();
    millis_start();

    init_printf(null, &printf_putc);

    lcd_init();
    lcd_puts("Hello from C,\non the 68008!");


    mario();

    init_printf(null, &printf_lcd);

    /*	while(true) {
    		lcd_cursor(0,0);
            printf("Runtime: %d.%02d ",millis/1000, (millis%1000)/10);
        }*/

    while(true) {
        TIL311 = 0xCC;
        DELAY_MS(1000);

        TIL311 = 0xC0;
        DELAY_MS(1000);

        TIL311 = 0xDE;
        DELAY_MS(1000);

        TIL311 = 0x00;
        DELAY_MS(1000);

        if(serial_available()) {
            int16_t ch;
            lcd_clear();
            uint8_t c = 0;

            while ((ch = getc()) != -1) {
                putc(ch);
                lcd_data(ch);
                if (c++ == 15)
                    lcd_cursor(0,1);
            }
        } else {
            lcd_clear();
            lcd_puts("Time since boot:");
            lcd_cursor(0,1);
            printf("%3d.%02d seconds",millis()/1000, (millis()%1000)/10);
        }
    }
}
Example #12
0
//Main program
int main() {
	
	int i,n=0,j=0;
	float diff;
	FMOD_SYSTEM *fmod = 0;
	FMOD_RESULT result;


	//establish COM communication
	if(serial_start(TEXT("COM7")) != 0) {
		printf("Error while establishing COM connection!\n");
		system("PAUSE");
		exit(1);
	}


	Sleep(1000);//sleep so that uC can clear LEDs' status

	//FMOD
	

	result = FMOD_System_Create(&fmod);

	if(result != FMOD_OK) {
		printf("FMOD Error");
		exit(1);
	}

	//Mutex
	stopAppMutex = CreateMutex(NULL,NULL,NULL);
	_stopApp = FALSE;

	spectrumMutex = CreateMutex(NULL,NULL,NULL);
	for(i = 0;i<8;i++) {
		analyzedSpectrum[i] = 0;
	}

	//FMOD listening thread
	_beginthread(getSpectrum, 0, fmod);

	//Network thread
	//_beginthread(notifyLightshow, 0, NULL);

	//control LEDs
	n=0;

	
	while(1) {
		//clear
		for(i = 0;i<25;i++){
			buf[0+i*3]=0x00;
			buf[1+i*3]=0x00;
			buf[2+i*3]=0x00;
		}

		WaitForSingleObject(spectrumMutex, INFINITE);
		for( i =0;i<5;i++) {
			diff = abs((analyzedSpectrum[i]/10-previousAnalyzedSpectrum[i]/10)*10);

			switch(i) {
				case 0:
					barsToLEDMapping(0,diff);

					break;
				case 1:
					barsToLEDMapping(1,diff);
					break;
				case 2:
					barsToLEDMapping(2,diff);
					break;
				case 3:
					barsToLEDMapping(3,diff);
					break;
				case 4:
					barsToLEDMapping(4,diff);
					break;
			}

			previousAnalyzedSpectrum[i]=analyzedSpectrum[i];
		}
		ReleaseMutex(spectrumMutex);

		serial_write(buf, 3*25);
	}

	//cleanup
	CloseHandle(comPort);

	system("PAUSE");
	return 0;
}