помогите пожалуйста я уже не знаю где искать весь интернет перерыл хочу подружится с SPI а не получается везде читал всё так займно написано и без примеров вот например в CodeVision есть библиотека как с ней работать не пойму!помогите обьясните и главное с примерами на C пожалуйстаДобавлено (02.07.2011, 18:43)
---------------------------------------------
всё я нашёл книжечку по CodeVision там рассказали как пользоваться SPI и библиотекой но вот проблема написал пример как в книге в CodeVision а он мне ошибки выписывает при компиляции не пойму вроде всё как в книге а чо тогда!!
Надо подключить внешний ADC (AD7896) по интерфейсу SPI к МК AT90S8515
Code
#include <90s8515.h>
#include <spi.h>
//указываем опорное наприжение в Мв
#define VREF 5000L
#define _busy PINB.0 //поключаем ногу BUSY
#define n_convst PORTB.1 //подключаем ногу NCOVST
//создайм функцию чтения преобразования
unsigned int ADC_read(void)
{
unsigned int voltage;//создадим переменую для хранения преобразования
n_convst = 0; //пускаем на ногу 0
n_convst = 1; //пускаем на ногу 1 етим мы вкл преобразование
while(_busy); //пока нога BUSY не равна 0
voltage = spi(0); //читаем стырший байт(MSB)
voltage =voltage<<8; //результат сдигаем на 8 бит
voltage |= spi(0); //чиатем младший байт(LSB)
voltage = (unsigned) (((unsigned long) voltage*VREF)/4096L);//измеряем наприжение в Мв
return voltage; //возращаем все измереное нашей функции
}
void main(void)
{
//создаём переменую для хранения результата от функции чтения Преобразователя
unsigned int result_ADC;
//инциализация порта
DDRB = 0x92;
//настройка конфигураций SPI
//SPCR = 0x50;
//начальное состояние Порта В
PORTB = 2;
//присваеваем к переменой result_ADC к функции тем мы узнаем результат преобразования в Мв
result_ADC = ADC_read();
}