Тема: “Переделка Air Wick”. Сайт от куда была взята эта прошивка уже не работает, вся надежда на Вас.
’’’/****************************************************
timer pshik
made slav0n
Chip type : ATtiny13
9.6 MHz / 8 = 1.2
фузы заводские
;Hfuse FF
;Lfuse 6A
****************************************************/
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include “m8_128.h”
#define LED_pl PB1
#define LED_mn PB0
#define GATE PB2
#define BUTTON_PSHIK PB4
#define adr_set_hrs 1
#define adr_binary adr_set_hrs + 1
#define adr_unary adr_binary + 1
//============================================================
int attribute((naked)) main(void)
{
WDTCR = (1<<WDE)| //выпускаем сторожевую собаку
// (0<<WDP3)|(0<<WDP2)|(0<<WDP1)|(1<<WDP0); //32mc
// (0<<WDP3)|(0<<WDP2)|(1<<WDP1)|(0<<WDP0); //64mc
// (0<<WDP3)|(0<<WDP2)|(1<<WDP1)|(1<<WDP0); //0.125c
// (0<<WDP3)|(1<<WDP2)|(0<<WDP1)|(1<<WDP0); //0.5c
// (0<<WDP3)|(1<<WDP2)|(1<<WDP1)|(0<<WDP0); //1c
// (0<<WDP3)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0); //2c
(1<<WDP3)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0); //4c
// (1<<WDP3)|(0<<WDP2)|(0<<WDP1)|(1<<WDP0); //8c
PORTB |= (1<<LED_pl)|(1<<BUTTON_PSHIK);
_delay_us(100);
while(bit_is_clear(PINB,LED_mn))
{
wdt_reset();
u8 set_hrs = eeprom_read_byte(adr_set_hrs) +1;
if(set_hrs >= 5)set_hrs =0;
u8 i = set_hrs;
do{
DDRB |= (1<<LED_pl); //зажигаем светодиод от кнопки
_delay_ms(200);
wdt_reset();
DDRB &=~(1<<LED_pl); //тушим светодиод
_delay_ms(200);
wdt_reset();
}while(i--);
_delay_ms(400);
wdt_reset();
_delay_ms(400);
wdt_reset();
// eeprom_update_byte(adr_set_hrs, set_hrs);
eeprom_write_byte(adr_set_hrs, set_hrs);
eeprom_write_byte(adr_binary, 0); // сбрасываем бинарный счетчик
}
if(bit_is_clear(PINB, BUTTON_PSHIK))goto M_PSHIK; //пшикаем и сбрасываем таймер
DDRB |= (1<<LED_pl)|(1<<LED_mn); //зажигаем светодиод
_delay_ms(10);
u8 p_ctr[4];
u8 p_old[4];
eeprom_read_block(p_ctr, adr_unary, 4); // читаем унарный счетчик
memcpy(p_old, p_ctr, 4);
// u8 *ctr_unary = p_ctr;
u32 *ctr_unary = p_ctr;
*ctr_unary <<= 1; //инкремент унарный счетчик
if(*ctr_unary == 0)
{
*ctr_unary = 0xffffffff;
// *ctr_unary = 0xff;
/**/
u8 ct_binary = eeprom_read_byte(adr_binary); // читаем бинарный счетчик
ct_binary++;
//здесь можем сравнить бинарный счетчик с чем-либо
u8 set_hrs = eeprom_read_byte(adr_set_hrs);
if(set_hrs >= 5)set_hrs =0;
if(ct_binary == (set_hrs+1) * 24)
// if(ct_binary == (set_hrs+1))
{
M_PSHIK:
ct_binary =0; // сбрасываем бинарный счетчик
DDRB |= (1<<GATE);
PORTB |= (1<<GATE);
wdt_reset();
_delay_ms(500);
wdt_reset();
_delay_ms(500);
wdt_reset();
PORTB &=~(1<<GATE);
DDRB &=~(1<<GATE);
}
eeprom_write_byte(adr_binary, ct_binary);
}
/* */
//------- пишем 4 байта унарного счетчика в EEPROM ----------------------
for(u8 i=0;i<4;i++)
{
if(p_old[i] != p_ctr[i])//пишем только если байт измнился
{
while(EECR & (1<<EEPE));// Wait for completion of previous write
// Set Programming mode
// EECR = (0<<EEPM1)|(0>>EEPM0); //Erase-Write
if(p_ctr[i] == 0xff)EECR = (0<<EEPM1)|(1>>EEPM0); //Erase Only
else EECR = (1<<EEPM1)|(0>>EEPM0); //Write Only
EEARL = adr_unary + i; //ucAddress;
EEDR = p_ctr[i]; //ucData;
EECR |= (1<<EEMPE);// Write logical one to EEMWE
EECR |= (1<<EEPE); // Start eeprom write by setting EEWE
}
}
//-------------------------------------------------------------------------
DDRB &=~((1<<LED_pl)|(1<<LED_mn)); //тушим светодиод
PORTB &=~((1<<LED_pl)|(1<<LED_mn));
MCUCR |= (1<<SE)|(1<<SM1)|(0<<SM0); //power down
asm(“sleep”);
}’’’
А это сообщение об ошибке:
Arduino: 1.8.5 (Windows 7), Плата:“ATtiny13 (ATtiny13a), 1.2 MHz”
C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Users\Александр\Documents\Arduino\hardware -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\Александр\Documents\Arduino\libraries -fqbn=attiny13:avr:attiny13:freq=f1200000 -ide-version=10805 -build-path C:\Users\8523~1\AppData\Local\Temp\arduino_build_262809 -warnings=none -build-cache C:\Users\8523~1\AppData\Local\Temp\arduino_cache_424531 -prefs=build.warn_data_percentage=75 -verbose C:\Users\Александр\Documents\Arduino\Pshik\Pshik.ino
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Users\Александр\Documents\Arduino\hardware -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\Александр\Documents\Arduino\libraries -fqbn=attiny13:avr:attiny13:freq=f1200000 -ide-version=10805 -build-path C:\Users\8523~1\AppData\Local\Temp\arduino_build_262809 -warnings=none -build-cache C:\Users\8523~1\AppData\Local\Temp\arduino_cache_424531 -prefs=build.warn_data_percentage=75 -verbose C:\Users\Александр\Documents\Arduino\Pshik\Pshik.ino
Using board ‘attiny13’ from platform in folder: C:\Program Files\Arduino\hardware\attiny13\avr
Using core ‘core13’ from platform in folder: C:\Program Files\Arduino\hardware\attiny13\avr
Detecting libraries used…
“C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=attiny13 -DF_CPU=1200000L -DARDUINO=10805 -DARDUINO_AVR_ATTINY13 -DARDUINO_ARCH_AVR “-IC:\Program Files\Arduino\hardware\attiny13\avr\cores\core13” “C:\Users\8523~1\AppData\Local\Temp\arduino_build_262809\sketch\Pshik.ino.cpp” -o “nul”
“C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=attiny13 -DF_CPU=1200000L -DARDUINO=10805 -DARDUINO_AVR_ATTINY13 -DARDUINO_ARCH_AVR “-IC:\Program Files\Arduino\hardware\attiny13\avr\cores\core13” “C:\Users\8523~1\AppData\Local\Temp\arduino_build_262809\sketch\Pshik.ino.cpp” -o “C:\Users\8523~1\AppData\Local\Temp\arduino_build_262809\preproc\ctags_target_for_gcc_minus_e.cpp”
C:\Users\Александр\Documents\Arduino\Pshik\Pshik.ino:20:21: fatal error: m8_128.h: No such file or directory
compilation terminated.
exit status 1
Ошибка компиляции для платы ATtiny13 (ATtiny13a).
Пожалуйста помогите.