/* Checks if flash is busy */ int embsys_flash_busy() { if(_lr(FLASH_SR) & SPI_CYCLE_IN_PROGRESS == 1) return 1; else return 0; }
void Canvas::unset ( int x, int y ) { if ( y - m.origin_y < m.margin_top ) /* looks like a click on the ruler */ { if ( x - m.margin_left - m.origin_x >= 0 ) { m.p2 = m.vp->x + ((x - m.margin_left - m.origin_x) / m.div_w); m.ruler_drawn = false; m.p3 = m.p4 = 0; } _lr(); signal_draw(); return; } if ( ! grid_pos( &x, &y ) ) return; m.grid->del( x, y ); }
/*_Interrupt2 void */timer1ISR() { /* acknowledge the interrupt - disable the interrupt flag*/ unsigned control1val=_lr(CONTROL1_REG); _sr((control1val&(~INTEREUPT_ENABLE_FLAG)),CONTROL1_REG); /* reset the interrupt flag if _oneShot=1 */ if(!my_isOneShot1){ _sr((control1val|INTEREUPT_ENABLE_FLAG),CONTROL1_REG); } my_timer1_cb(); }
void Canvas::end_cursor ( int x, int y ) { if ( ! grid_pos( &x, &y ) ) return; m.ruler_drawn = false; m.p2 = x; m.p4 = ntr( y ); _lr(); signal_draw(); }
void copyResultToBuffer(uint8_t* to, uint32_t start, uint32_t size){ unsigned int datReg=FLASH_DATA; unsigned int data=0; unsigned int dataByte; for(uint8_t i=0;i<size;i++){ if(i%4==0) { data=changeEndian(_lr(datReg)); datReg++; } dataByte=WRITE_TO_BUFFER_MASK & data; dataByte=dataByte>>24; to[start+i]|=(uint8_t)dataByte; data=data<<8; } }
void flash_transfer_data(unsigned char direction, int count, unsigned char* data) { unsigned int data_pos = 0, i; if (direction == STORE_DATA) { for(i = 0 , data_pos = 0 ; i < count ; i+=4 , ++data_pos) _sr((*(unsigned int*)(data+i)),FLASH_FDATA+data_pos); } else /* LOAD_DATA */ { unsigned int j, regData; unsigned char* pRegData = (unsigned char*)®Data; while(i < count) { regData = _lr(FLASH_FDATA + data_pos); for(j = 0; j < 4 && i < count; ++i, ++j) data[i] = pRegData[j]; data_pos++; } } }
int flash_is_ready(void){ return ((_lr(FLASH_STATUS_REG)&(FLASH_STATUS_CYCLE_DONE|FLASH_STATUS_CYCLE_IN_PROGRESS))==0); }