Всем привет!
Столкнулся с какой та не понятной проблемой. Не могу вывести массив данных через spi.
uint8_t buf [3] = {10, 20, 30};
void SPI_WriteArray ( uint8_t num , uint8_t *data ){
asm("wdr");
PORTF.OUT = 0xA1;
//PORTF.OUTSET = 0xa1;
while(num){
SPIF.DATA = *data++;
while(!(SPIF.STATUS & (1<<SPI_IF_bp)));
num--;
}
PORTF.OUT = 0xB3;
// PORTF.OUTSET =0xb3;
}
main(){
PORTF.DIR = 0xbf;
SPIF.CTRL = SPI_ENABLE_bm| SPI_DORD_bm | SPI_MASTER_bm | SPI_PRESCALER_DIV64_gc;
while(1) {
SPI_WriteArray(3 , buf);
}
}
че самое интересное симулятор показывает изменения данных в регистрах spif.data spif.ctrl spif.status изменение портов вода вывода тоже показывает. В чем проблема?
Раздел: AVR
Столкнулся с какой та не понятной проблемой. Не могу вывести массив данных через spi.
uint8_t buf [3] = {10, 20, 30};
void SPI_WriteArray ( uint8_t num , uint8_t *data ){
asm("wdr");
PORTF.OUT = 0xA1;
//PORTF.OUTSET = 0xa1;
while(num){
SPIF.DATA = *data++;
while(!(SPIF.STATUS & (1<<SPI_IF_bp)));
num--;
}
PORTF.OUT = 0xB3;
// PORTF.OUTSET =0xb3;
}
main(){
PORTF.DIR = 0xbf;
SPIF.CTRL = SPI_ENABLE_bm| SPI_DORD_bm | SPI_MASTER_bm | SPI_PRESCALER_DIV64_gc;
while(1) {
SPI_WriteArray(3 , buf);
}
}
че самое интересное симулятор показывает изменения данных в регистрах spif.data spif.ctrl spif.status изменение портов вода вывода тоже показывает. В чем проблема?
Раздел: AVR