int Avr1200Bus::Reset() { UserDebug(UserApp2, "Avr1200Bus::Reset() I\n"); At90sBus::RefreshParameters(); int k; for (k = 0; k < 4; k++) { SPIBus::Reset(); WaitMsec(50); // Almeno 20msec dai datasheet AVR atmel UserDebug(UserApp2, "Avr1200Bus::Reset() ** SendDataByte\n"); SendDataByte(EnableProg0); SendDataByte(EnableProg1); RecDataByte(); SendDataByte(0); if ( ReadDeviceCode(0) == 0x1E ) break; } return OK; }
void WriteText(char * napis) { while(*napis){ SendDataByte(*napis); napis++; } }
void LedMatrixBall::Update() { for (Ball *iBall = _balls, *eBall = _balls + kBalls ; iBall < eBall ; ++iBall) { iBall->Update() ; } for (unsigned short idx = 0 ; idx < LedMatrix::kSize ; ++idx) { unsigned char x, y ; LedMatrix::IdxToCoord(idx, x, y) ; unsigned char r = 0 ; unsigned char g = 0 ; unsigned char b = 0 ; for (Ball *iBall = _balls, *eBall = _balls + kBalls ; iBall < eBall ; ++iBall) { unsigned char bx = iBall->X() >> LedMatrix::kShiftX ; unsigned char by = iBall->Y() >> LedMatrix::kShiftY ; char dx = bx - x ; char dy = by - y ; if (dx < 0) dx = -dx ; if (dy < 0) dy = -dy ; if ((dx <= 1) && (dy <= 1)) { unsigned char d = dx + dy ; r = iBall->R(d) ; g = iBall->G(d) ; b = iBall->B(d) ; break ; } } SendDataByte(g) ; SendDataByte(r) ; SendDataByte(b) ; } }
void AtMegaBus::WriteProgPage(long addr, UBYTE const *data, long page_size, long timeout) { long k; long first_loc = -1; //first location different from 0xFF if (page_size <= 0) page_size = write_page_size; //align addr to page boundary addr &= ~(page_size - 1); //0xFFFFFF00 for (k = 0; k < page_size; k++, data++) { if (first_loc < 0 && *data != 0xFF) first_loc = addr + k; WriteProgByte(k, *data); } SendDataByte(WriteProgPageMem); SendDataByte(addr >> 9); //send word address SendDataByte(addr >> 1); SendDataByte(0); THEAPP->SetLastProgrammedAddress(addr + page_size - 1); if (enable_flashpage_polling) { for (k = timeout; k > 0; k--) { if ( ReadProgByte(first_loc) != 0xFF ) break; } } else WaitMsec( THEAPP->GetMegaPageDelay() ); }