Последний раз редактировалось Chip; 26.09.2009 в 18:42.
а нет ли какого-нибудь примера, на котором SPI бы было реализовано?
Вот здесь например, если поискать еще пара примеров найдется
спасибо большое, попробю потестить. Еще бы знать как с производительностью у контроллера, вычитал в даташите схемы куда я хочу вмешаться что SCLK может до единиц мегагерц.
Купил по случаю USB осциллограф, который из мастеркита на C8051F321, а логический анализатор оттуда этот SPI не берет, да и осциллографом SCLK нельзя посмотреть, видимо производительности не хватает, осциллограф до 200Кгц.
пробую эту библиотеку использовать совместно с вашей программой. Во первых в моей оболочке нет команды Serial.write, поменял на serial.print, после этого вылезло куча ошибок.
In file included from C:\arduino-0011\hardware\cores\arduino/WProgram.h:6,
from Spi.cpp:1:
c:/arduino-0011/hardware/tools/avr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
C:\arduino-0011\hardware\cores\arduino/WProgram.h:14: error: default argument given for parameter 3 of 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
C:\arduino-0011\hardware\cores\arduino/WProgram.h:14: error: after previous specification in 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
C:\arduino-0011\hardware\cores\arduino/WProgram.h:14: error: default argument given for parameter 3 of 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
C:\arduino-0011\hardware\cores\arduino/WProgram.h:14: error: after previous specification in 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
In function 'void loop()':
error: invalid conversion from 'byte*' to 'long int
Не могу разобраться в чем дело, вроде где-то тип данных не совпадает, а где не понимаю.
Последний раз редактировалось Chip; 02.10.2009 в 23:56.
код я использовал из вашей ветки.
//http://compcar.ru
// пины для для подключения к шине автомобиля
//pin 13 CL
//pin 11 DI
//pin 10 CE
#include <Spi.h>
byte MyBuff[88];
void setup()
{
Serial.begin(115200);
Spi.mode(0); // clock/4
}
void loop()
{
for (int i=0; i <= 87; i++)
{
MyBuff[i] = Spi.read();
}
Serial.write(MyBuff, 88);
}
насколько я понимаю Mybuff тут как byte заявлен, а в библиотеке spi типы long int используются, но я не настолько хорошо в этом сображаю чтобы разобраться.
SPI читает по байтно в массив MyBuff[i], где i адрес переменной в массиве.
тебе нужно считать переменную вот таким образом long int MyData = MyBuff[i]
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)