Szukałem na forum rozwiązania mojego problemu, ale nic nie znalazłem. Jeżeli już jest taki temat to bardzo bym prosił o przesłanie mi linka na prv. Temat skasuję
Więc: muszę zrobić układ, gdzie at2313 pracuje w trybie master. Podłączyłem więc oscyloskop pod MOSI i zadałem mu następujący kodzik:
Następnie USI_senddata("hello world"); wywoływane w nieskończonej pętli. Przerobiłem na podstawie dokumentacji w asmie. Reakcja jest taka, że CLK ładnie taktuje (1, 0 naprzemiennie), niestety na MOSI nie ma nic (na wszelki wypadek sprawdziłem także MISO - także nic) - cały czas jest stan niski. Co więc jest źle?
Więc: muszę zrobić układ, gdzie at2313 pracuje w trybie master. Podłączyłem więc oscyloskop pod MOSI i zadałem mu następujący kodzik:
void USI_transmit(const char what)
{
USIDR=what;
USISR = (USIOIF);
do{
USICR = (USIWM0) | (USICS1) | (USICLK) | (USITC);
_delay_ms(40);
}while(!(USISR & USIOIF));
}
void USI_senddata(const char* what)
{
while(*what++)
USI_transmit(*what);
}Następnie USI_senddata("hello world"); wywoływane w nieskończonej pętli. Przerobiłem na podstawie dokumentacji w asmie. Reakcja jest taka, że CLK ładnie taktuje (1, 0 naprzemiennie), niestety na MOSI nie ma nic (na wszelki wypadek sprawdziłem także MISO - także nic) - cały czas jest stan niski. Co więc jest źle?