если бы все было так просто "exit status 1 Ошибка компиляции для платы ATtiny x5 series." вот что выдает, это просто если вставить штуку такую #include <iarduino_RTC.h> полагаю тинька не поддердивает напрямую ic2? но делать то что?
ну попробуйте найти что-нибудь по этой ошибке, эта ошибка может значить все что угодно и даже великий гугл по такойму запросу совпадений не находит
На запрос: "attiny i2c", одна из первых ссылок - http://playground.arduino.cc/Code/USIi2c Если это Ваш случай, то про библиотеку придется забыть и запросы к RTC писать самому.
Может я плохо смотрю, но я так и не увидел какой у вас всётаки камень? attiny много всяких... Код (C++): #include <TinyWireM.h> #include "TM1637.h" #define CLK 1 #define DIO 4 TM1637 tm1637(CLK,DIO); ///// часы .. byte decToBcd(byte val){ return ( (val/10*16) + (val%10) ); } byte bcdToDec(byte val){ return ( (val/16*10) + (val%16) ); } void setDateDs1307(byte second, // 0-59 byte minute, // 0-59 byte hour, // 1-23 byte dayOfWeek, // 1-7 byte dayOfMonth, // 1-28/29/30/31 byte month, // 1-12 byte year) // 0-99 { TinyWireM.beginTransmission(0x68); TinyWireM.send(0); TinyWireM.send(decToBcd(second)); TinyWireM.send(decToBcd(minute)); TinyWireM.send(decToBcd(hour)); TinyWireM.send(decToBcd(dayOfWeek)); TinyWireM.send(decToBcd(dayOfMonth)); TinyWireM.send(decToBcd(month)); TinyWireM.send(decToBcd(year)); TinyWireM.endTransmission(); } void getDateDs1307(byte *second, byte *minute, byte *hour, byte *dayOfWeek, byte *dayOfMonth, byte *month, byte *year) { TinyWireM.beginTransmission(0x68); TinyWireM.send(0); TinyWireM.endTransmission(); TinyWireM.requestFrom(0x68, 7); *second = bcdToDec(TinyWireM.receive() & 0x7f); *minute = bcdToDec(TinyWireM.receive()); *hour = bcdToDec(TinyWireM.receive() & 0x3f); *dayOfWeek = bcdToDec(TinyWireM.receive()); *dayOfMonth = bcdToDec(TinyWireM.receive()); *month = bcdToDec(TinyWireM.receive()); *year = bcdToDec(TinyWireM.receive()); } float get3231Temp(){ byte tMSB, tLSB; float temp3231; TinyWireM.beginTransmission(0x68); TinyWireM.send(0x11); TinyWireM.endTransmission(); TinyWireM.requestFrom(0x68, 2); if(TinyWireM.available()) { tMSB = TinyWireM.receive(); //2's complement int portion tLSB = TinyWireM.receive(); //fraction portion temp3231 = (tMSB & B01111111); //do 2's math on Tmsb temp3231 += ( (tLSB >> 6) * 0.25 ); //only care about bits 7 & 8 } else { //oh noes, no data! } return temp3231; } ///////////////// void setup() { TinyWireM.begin(); tm1637.init(); tm1637.set(1); // яркость, от 0 до 7 } void loop(){ byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); byte temp = get3231Temp(); int8_t TimeDisp[4]; if ((second % 2) == 0) { tm1637.point(POINT_OFF); // выключаем точки TimeDisp[0] = hour / 10; TimeDisp[1] = hour % 10; TimeDisp[2] = minute / 10; TimeDisp[3] = minute % 10; } else { tm1637.point(POINT_ON); // включаем точки TimeDisp[0] = hour / 10; TimeDisp[1] = hour % 10; TimeDisp[2] = minute / 10; TimeDisp[3] = minute % 10; } tm1637.display(TimeDisp); // отправляем массив на экран } Вот простой код, который у меня на часиках Attiny 85 (digispark) 100% работает.
да, у меня те же 85, но если вставляю ваш код, потсто чтобы проверить, опять таки выдает ошибку компиляции..
Проверяйте библиотеки и правильность выставленного камня у меня стоит Digispark (Default-16,5mhz) скетч компилится без проблем.
вопрос очень интересный) я сам понять не могу ничегошеньки)но суть в том, что стоит мне только вставить строчу #include <iarduino_RTC.h>, то всё в библиотеке видимо есть что-то, что тинька не переваривает, но все же точно я не знаю, я недавно 'bnv стал заниматься
Может просто библиотека не установлена ? Вот еще статейка, в ней есть несколько слов о различии digispark и голой Attiny http://mysku.ru/blog/china-stores/36691.html
Подскажите пожалуйста, а прерывания от будильника работают при питании от батарейки? И сколько в таком случае они будут потреблять?