реклама на сайте
подробности

 
 
> Проблема с SPI PIC16F877
pipka
сообщение Jan 30 2008, 19:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-07
Пользователь №: 29 465



Здравствуйте.

Пытаюсь связать два PIC16F877 через SPI, один в режиме Master, второй-slave.
На PORTD Master'a и Slave'a получается 00001111, хотя на Slave должно быть 11111111.

Master:

#include <pic.h>

__CONFIG(0x3FF1);

int res;
main(void)
{
TRISA=0b00000000;
TRISC=0b00010000;
TRISB=0x0;
TRISD=0x0;

PORTD=0x0;
PORTB=0x0;
PORTC=0x0;

SSPIE=0;
SSPCON=0x20;
SSPIF=0;
SSPBUF=0b11111111;

while(!SSPIF);
PORTD=SSPBUF;
}


Slave:

#include <pic.h>

__CONFIG(0x3FF1);

int res,i;


main(void)
{
TRISA=0b00000000;
TRISC=0b00001000;
TRISB=0x0;
TRISD=0x0;

PORTD=0x0;
PORTB=0x0;
PORTC=0x0;
SSPCON=0x25;
SSPIF=0;
SSPIE=1;
PEIE=1;
GIE=1;

}

interrupt IntSer(void)
{

if(SSPIF==1)
{
res=SSPBUF;
SSPBUF=0b00001111;
SSPIF=0;
}
show();
}

show()
{
PORTD=res;
for(i=0;i<=1000;i++);
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016