Товарищи, помогите, не работает spi slave, что может быть не так?
пытаюсь в протеусе соединить 2 atmega8, ведущий работает нормально, с модулем проверки spi обменивается, а ведомый с ним не общается (((
void SPI_Recieve()
{ ch = SPDR;
putchar(ch);
while (!(SPSR & temp));
k = 0; }
#include <stdio>
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ TCNT0=0xB7;
if( k == 1)
SPI_Recieve(); }
#include <spi>
void main(void)
{
PORTB=0x00;
DDRB=0x10;
PORTC=0x02;
DDRC=0x02;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x05;
TCNT0=0xB7;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x01;
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x07;
ACSR=0x80;
SFIOR=0x00;
SPCR=0x43;
SPSR=0x00;
#asm("sei")
while (1)
{ while( !(SPSR & temp) );
k = 1; };
}
На ведушем на время посылки дёргаю ногой, которая на ведомом к /ss подключена
Подскажите в чём моё незнание?
И что за беда творится с протеусом, подскажите...
Составил модель из двух atmega8 зашиваю в них один и тот же код, ставлю работу с spi, один контроллер работает, второй нет, переделал модель, немного поработали обе и опять одна перестала ((( proteus 6.5 sp5
Помогите с SPI slave для ATMega8
-
Гость
да протеус сменил уже, на 6,9, только лучше увы не стало, ещё глючнее работает, но могу сомневаться что поставил нормальное лекарство, ибо ругался он, да и лекарство от 6,5 ставил ) хотя на удивление работает, только жаль, что коряво (
А по поводу практики согласен, только полевой тест показывает полную правду )
А по поводу практики согласен, только полевой тест показывает полную правду )
- avr123.nm.ru
- Вечно гонимый
- Сообщения: 331
- Зарегистрирован: Пн сен 04, 2006 20:25:28
- Откуда: самоучитель по микроконтроллерам
- Контактная информация:
-
slimm