void UART0_IRQHandler(void){ //disable interrupt U0IER = 0x0; /* char s[11]; char a = U0RBR; for(int i = 0;i<100;i++){ itoa(array[i],s,10); USART0_String(s); USART0_Transmit('\r'); USART0_Transmit('\n'); } */ //USART_Handler(); char s[12]; int tmp = 0; s[0] = U0RBR; for(tmp=1;tmp<11;tmp++){ s[tmp] = USART0_Receive(); if(s[tmp] == '\n') break; } s[tmp+1] = '\0'; tmp = (int)strtol(s, NULL, 10); pwm_set_value(FAN_ADC, tmp); //heater_set_temp(EXTRUDER_ADC, tmp); //STEPS_PER_M_E = tmp; char a[12]; itoa(tmp, a, 10); USART0_String(a); USART0_Transmit('\n'); //enable interrupt U0IER = 0x1; }
/** * @brief */ void snap_task( void ) { unsigned char frame; if( USART0_RTR() ) { frame = USART0_Receive(); switch( state ) { case kSnapPreamble : case kSnapSync : if( SYNC == frame ) { state = kSnapHeaderDef; hdb_cnt = 0; } break; case kSnapHeaderDef : if( 0 == hdb_cnt ) { hdb_cnt = 1; hdb2.raw = frame; } else { hdb_cnt = 2; hdb1.raw = frame; if( DAB_0 == hdb2.fields.DAB ) { if( SAB_0 == hdb2.fields.SAB ) { if( PFB_0 == hdb2.fields.PFB ) { if( NDB_0 == hdb1.fields.NDB ) { if( EDM_NONE == hdb1.fields.NDB ) { process_packet(); } else { state = kCRC; } } else { state = kData; } } else { state = kProtocol; } } else { state = kSource; } } else { state = kDestination; } } case kDestination : case kSource : case kProtocol : case kData : case kCRC : break; } } }