Должна ли потерявшая нюх тупая шкура mega8 останавливать работу с портами от SPI.transfer() или это нечто экстраординарное?
- Войдите на сайт для отправки комментариев
Доброго времени суток, all.
std в тупике.
const byte digdata[16]={126,12,182,158,204,218,250,14,254,222,238,248,114,188,242,226};
#include <SPI.h>
int x=1;
unsigned long xxx;
void setup(){
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
digitalWrite(8,1);
digitalWrite(9,1);
}
void loop(){
ldmdisp(x);
x++;
delay(1000);
if(millis()-xxx>=1000){
digitalWrite(8,!digitalRead(8));
xxx=millis();
}
}
void ldmdisp(int ldmdata){
int tmp; // temp
byte digit[3]; // output
tmp=ldmdata-(ldmdata%100);
digit[0]=tmp/100;
tmp=ldmdata-(ldmdata%10)-(digit[0]*100);
digit[1]=tmp/10;
digit[2]=ldmdata-(digit[0]*100)-(digit[1]*10);
digitalWrite(9,0);
SPI.transfer(digdata[digit[2]]);
SPI.transfer(digdata[digit[1]]);
SPI.transfer(digdata[digit[0]]);
digitalWrite(9,1);
}
Если закомментировать строку 14, светодиод на D8 будет исправно мигать. Собсно он был на D10, но мало ли, вдруг по #include <SPI.h> какие-то там аппаратные дела, 10й это хардварный SS же.
Если же влить скетч как есть, у меги наступает жосткий halt. Она вообще не делает нихера. Нигде, ни на каком из выводов уровни не изменяются, никак, вообще.
Что представляет собой схема. Это трёхзначный семисегментный экран Kingbright BA56-11, каждая цифра подключена через ULN2003D к сдвиговому регистру 74HC595, вывод переноса первого регистра подключен к SI второго и так далее, то есть чтобы отправить цифру, надо положить защёлку на землю (она на D9, как следует из текста), три раза сделать SPI.transfer() и вернуть на место. В общем, std справедливо считает что принципиальная схема не нужна. Проблема про. Грам. Мна. Я.
бонусная инфа.
Подключен ArduinoISP (D11-D13 и сброс). Предполагая, что он мешает нормальной работе регистров, std его отключал, оставляя только питание. Это ничего не дало.
Алсо, менялись местами 11 и 13 провода, а вдруг перепутаны? Но нет...
Сам дурак, забыл SPI.begin()
ща посмотрим...
UPD. да точно.
//а std знатный псих. Мне хотелось себе голову откусить.
10 пин еще в 0