Exemple #1
0
void Task1()
{
        uint16_t i,j;
	uint32_t it;
	nrk_time_t time, time2, time3;
	while(1) {
        nrk_led_set(RED_LED);
	nrk_gpio_toggle(NRK_DEBUG_0);
	nrk_kprintf("Task 1\r\n");

//for (i = 0; i < 10; i++) {
//        nrk_time_get(&time);
//        nrk_time_get(&time2);
//        nrk_time_sub(&time3, time2, time);
//	printf("%lu.%09lu\r\n", time3.secs, time3.nano_secs);
	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);
	for(it=0;it<115200;it++);
	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);
//        nrk_time_get(&time2);
//        nrk_time_sub(&time3, time2, time);
//	printf("%lu.%09lu\r\n", time3.secs, time3.nano_secs);
//}

//	nrk_time_get(&time);
//	for(i=0;i<256;i++) for(j=0;j<65000;j++); // wait 1 second
//	nrk_time_get(&time2);
//	nrk_time_sub(&time3, time2, time);
//	printf("%lu.%lu\r\n", time3.secs, time3.nano_secs);
        nrk_kprintf("Task 1 done\r\n");
	nrk_wait_until_next_period();
	}
}
Exemple #2
0
void my_timer_callback()
{
	nrk_led_toggle(ORANGE_LED);
	nrk_gpio_toggle(NRK_DEBUG_0);
	// Normally you should not call long functions like printf
	// inside a interrupt callback
	nrk_kprintf( PSTR("*** Timer interrupt!\r\n"));
}
Exemple #3
0
void Task3() {
	uint16_t cnt;
	printf("Task3 PID=%u\r\n", nrk_get_pid());
	cnt = 0;
	while (1) {
		nrk_led_toggle(BLUE_LED);
		nrk_gpio_toggle(NRK_DEBUG_2);
		printf("Task3 cnt=%u\r\n", cnt);
		nrk_wait_until_next_period();
		cnt++;
	}
}
Exemple #4
0
void Task2() {
	int16_t cnt;
	printf("Task2 PID=%u\r\n", nrk_get_pid());
	cnt = 0;
	while (1) {
		nrk_led_toggle(GREEN_LED);
		nrk_gpio_toggle(NRK_DEBUG_1);
		printf("Running: Task2 , signed cnt=%d\r\n", cnt);
		nrk_wait_until_next_period();
		//nrk_stats_display_pid(nrk_get_pid());
		cnt--;
	}
}
Exemple #5
0
void Task1()
{
nrk_time_t t;
uint16_t cnt;
cnt=0;
nrk_kprintf( PSTR("Nano-RK Version ") );
printf( "%d\r\n",NRK_VERSION );


setup_uart1(UART_BAUDRATE_19K2);
DDRE=0x2;
printf( "My node's address is %u\r\n",NODE_ADDR );
  
printf( "Task1 PID=%u\r\n",nrk_get_pid());
t.secs=5;
t.nano_secs=0;

// setup a software watch dog timer
nrk_sw_wdt_init(0, &t, NULL);
nrk_sw_wdt_start(0);


	putc1('~'); putc1('A'); putc1(' '); putc1('8');
	nrk_wait_until_next_period();
	putc1('~'); putc1('A'); putc1(' '); putc1('8');
  while(1) {
	// Update watchdog timer
	nrk_sw_wdt_update(0);
	nrk_led_toggle(ORANGE_LED);
	nrk_gpio_toggle(NRK_DEBUG_0);
	printf( "Task1 cnt=%u\r\n",cnt );
	nrk_wait_until_next_period();
        // Uncomment this line to cause a stack overflow
	// if(cnt>20) kill_stack(10);

	// At time 50, the OS will halt and print statistics
	// This requires the NRK_STATS_TRACKER #define in nrk_cfg.h
	// if(cnt==50)  {
	//	nrk_stats_display_all();
	//	nrk_halt();
	//	}


	cnt++;
	}
}
Exemple #6
0
void Task1() {
	nrk_time_t t;
	uint16_t cnt;
	cnt = 0;

	printf("My node's address is %u\r\n", NODE_ADDR);
	printf("Task1 PID=%u\r\n", nrk_get_pid());

	while (1) {
		nrk_led_toggle(ORANGE_LED);
		nrk_gpio_toggle(NRK_DEBUG_0);
		//for(int i=0 ; i < 5 ; i++){
			// Waste some time...
		//}
		printf("Running Task1, cnt=%u\r\n", cnt);
		nrk_wait_until_next_period();
		cnt++;
	}
}
Exemple #7
0
void Task3()
{
        uint16_t i,j;
	uint32_t it;
	nrk_time_t time;
  while(1) {
	nrk_led_set(BLUE_LED);
	nrk_gpio_toggle(NRK_DEBUG_2);
	nrk_kprintf("Task 3\r\n");

	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);
	for(it=0;it<345600;it++);//345600
	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);
	nrk_kprintf("Task 3 done\r\n");
	nrk_wait_until_next_period();
	}
}
Exemple #8
0
void Task2()
{
        uint16_t i,j;
	uint32_t it;
	nrk_time_t time, time2, time3;
  while(1) {
    	nrk_led_set(GREEN_LED);
	nrk_gpio_toggle(NRK_DEBUG_1);
	nrk_kprintf("Task 2\r\n");
	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);

	for(it=0;it<400800;it++);//for(it=0;it<460800;it++);//460800
	nrk_time_get(&time);
	printf("%lu.%09lu\r\n", time.secs, time.nano_secs);
	nrk_kprintf("Task 2 done\r\n");

	nrk_wait_until_next_period();
	}
}
Exemple #9
0
void my_timer_callback()
{
	int8_t v;
	nrk_led_toggle(GREEN_LED);
	nrk_gpio_toggle(NRK_DEBUG_0);
	//	printf("#");
	

	V_Awatt_S32R	=	ade_read32(AWATT);
	V_Avar_S32R		=	ade_read32(AVAR);
	
	memcpy(&V_TxBuff_U8R[V_WrPtr_U32R],&V_Awatt_S32R,3);
	V_WrPtr_U32R+=3;

	memcpy(&V_TxBuff_U8R[V_WrPtr_U32R],&V_Avar_S32R,3);
	V_WrPtr_U32R+=3;

	if(V_WrPtr_U32R == C_CircBuffSize)
	{
		V_WrPtr_U32R = 0;
		V_WrSeqNo_U8R = 1;
	}
////////////////////////////
	V_EvnDetCntr_U32R++;
	if(V_EvnDetCntr_U32R==Fs)
	{
		V_EvnDetCntr_U32R = 0;
		V_DataNew_U32R = V_Awatt_S32R;
		V_DiffData_S32R = V_DataNew_U32R - V_DataOld_U32R;
		V_DataOld_U32R = V_DataNew_U32R;
		if((V_DiffData_S32R>C_ThresholdPwr)||(V_DiffData_S32R<(-1*C_ThresholdPwr)))
		{
			F_Occ_U8R = 0;
			F_Det_U8R = 0;
		}
		else
		{
			if(F_Occ_U8R==0)
			{
				F_Det_U8R = 1;
				F_Occ_U8R = 1;
			}
			else
				F_Det_U8R = 0;
		}
		V_RdDSP_U16R = ade_read16(RUN);
		if(V_RdDSP_U16R==0)
		{
			ade_write16(RUN, START);
			printf("\r\n$$");
		}
	}
/////////////////////////////
	if(F_ReadyForSignal_U8R==1)
	{
		if(((V_WrSeqNo_U8R*C_CircBuffSize + V_WrPtr_U32R)-(V_RdPtr_U32R)) >= C_SlipPktSize)
		{
		
			v = nrk_event_signal(signal_one);
			if(v==NRK_ERROR){}
		}
	}
	
	
	V_TINTcnt_U8R++;
	if(V_TINTcnt_U8R==250)
	{
		F_1secData_U8R = 1;
		V_TINTcnt_U8R=0;
		V_ArmsCurr_U32R = ade_read32(AIRMS);
		V_ArmsVolt_U32R = ade_read32(AVRMS);
		V_ArmsWatt_S32R = ade_read32(AWATT);
	}

	//	nrk_kprintf( PSTR("*** Timer interrupt!\r\n"));
}