Ви не увійшли.
Вопрос: когда убираю extern компилируется но подозреваю что работает не правильно, хотя по внешним признакам не понятно.
Kaka пише:Если он extern, то он должен быть описан в другом файле.
И что с этим делать???
About: I am a University of Edinburgh electronics engineering student. More About hertzgamma »
Пусть им ошибки их преподватель исправляет, ему за это платят. Моё дело дом сторожить.
Спрашивать у "знающего чела" что это такое и где где оно описано.
Если он extern, то он должен быть описан в другом файле.
И что с этим делать???
Если он extern, то он должен быть описан в другом файле.
Други, прошу хелпа!
Есть скетч.
// Following lines are essential to enable sleep mode
#include <avr/sleep.h>
#include <avr/wdt.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
volatile boolean f_wdt = 1;
int pwr = 1; //(Could be pin 3 on Arduino) hard pin 6 on ATtiny
int alarm = 0; //(Could be pin on Arduino) hard pin 5 on ATtiny
int door = 2; //(Could be pin 5 on Arduino) hard pin 7 on ATtiny
int LDR = 3; //(Could be pin A0 on Arduino) hard pin 2 on ATtiny
int time_door_open = (30)*1000; //Time that sets the beep alarm on after the fridge door is opened
int time = 50; //Time delay
int time_tone = 80; //Time delay to make the beep tone
int time_tone2 = 60; //Time delay to make the beep tone
float trig = 2.5; //Trigger level for the LDR
float LDRval = 0; //Initial value of the LDR measurement level
int door_left = 0; //Variable to set whether the door is left opened (1) or closed (0)
extern volatile unsigned long timer0_overflow_count; //This is required to know when a rollover occurs
//Pins setup
void setup() {
pinMode(pwr, OUTPUT);
pinMode(alarm, OUTPUT);
pinMode(door, OUTPUT);
pinMode(LDR, INPUT);
setup_watchdog(8); // approximately 4 seconds sleep
// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
}
//Main program loop
void loop() {
//
if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs
f_wdt=0; // reset flag
//
if(read_light()) //In case the door is opened this statement will be true
{
door_left = 1;
timer0_overflow_count = 0;
unsigned long start = millis(); // This is the time countdown when the door is opened
while( (millis() - start) <= time_door_open )
{
if(millis() - start < 0) break; //break while loop if rollover occures
if(read_light() == 0) // If door is closed the program does nothing and starts again
{
door_left = 0;
break;
}
delay(time); //delay needed
}
if(door_left == 1) alarm_sound(); // If door is opened start the beep sound!
}
//Now put the system to sleep
system_sleep();
}
}
При компилировании выдает ошибку:
Fridge_Door_Detector_Alarm_ATtiny85_v03_Sleep_Enabled.ino:60: undefined reference to `timer0_overflow_count'
Я выделил в скетче.
Вопрос: когда убираю extern компилируется но подозреваю что работает не правильно, хотя по внешним признакам не понятно.
работаю на arduino IDE 1.6.13 под windows XP. Скетч для платы digispark. Проект отсюда https://www.instructables.com/id/Fridge-Door-Detector-Alarm/
Исходя из того что код писал вроде знающий чел и все у него работает, подозреваю что проблема связана с версией компилятора.
Может кто нить скомпилирует у себя и пришлет hex, моя благодарность не знала бы границ. Или поскажите что нить дельное.
renoshnik пише:Поэтому нужно фото платы .... может там какой-то аналог ....
Кому нужно? ТС уже, похоже, забил, а нам с Вами нафига? Мне вот не нужно :-)))
так и да ....
Kaka пише:ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?
Поэтому нужно фото платы .... может там какой-то аналог ....
Я бы сказал нет причин считать иначе.
DTR не что иное "обвязка" к RST входу, если так можно сказать.
Поэтому нужно фото платы .... может там какой-то аналог ....
Кому нужно? ТС уже, похоже, забил, а нам с Вами нафига? Мне вот не нужно :-)))
ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?
Поэтому нужно фото платы .... может там какой-то аналог ....
ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?
dtr-dtr
Вполне конкретно.
И логично предположить что плата с DTR.
Другое дело что DTR может не так как предполагается реализован или вовсе фиктивный.
Летят ... в самолёте,
- Помошник, прибор?
- Восемь!
- Чего восемь?
- А чего прибор?
Я никогда не видел плат c DTR я делал его переходничком на макетке используя кондесатор прижимая транзистором ресет к земле.
(для прошивки через HC-05)
Да, что там может быть не так, я всё жду от ТС чтобы он сказал куда именно он дтр пхнул. Думаю, на ресет. А если на ресет, то наверняка забыл конденсатор поставить, вот он и не грузит. И не будет хоть жамкай ресет, хоть нет. На ресет жамкать имеет смысл, если DTR никуда не подключён, а если он на ресет заведён, то хоть зажамкайся - скорее переходник USB-UART спалишь.