Proiectul propune o masinuta teleghidata controlata de la tastatura unui calculator si care are capacitatea de a memora traseul parcurs pentru a-l reface fara interventia unei persoane.
Codul contine:
int uart_putchar(char c, FILE *unused)
{
if (c == '\n') uart_putchar('\r', 0);
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
return 0;
}
int uart_getchar(FILE* f)
{
char c;
loop_until_bit_is_set(UCSRA, RXC);
c = UDR;
if(c=='\r')
c='\n';
return c;
}
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE));
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
}
unsigned char EEPROM_read(unsigned int uiAddress)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE));
/* Set up address register */
EEAR = uiAddress;
/* Start eeprom read by writing EERE */
EECR |= (1<<EERE);
/* Return data from data register */
return EEDR;
}
Masina merge destul de bine. Uneori tine comanda ceva mai mult decat a fost apasata tasta.
Refacerea traseului nu respecta 100% traseul initial.