Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

ard125
2019-12-02 14:13:24
Игорь Гоген пише:

моя благодарность не знала бы границ.

Ну безграничная благодарность - это слишком много, а вот за соточку могу выслыть
65450bbb6234.jpg

Watchdog
2019-12-02 09:06:03
Игорь Гоген пише:

Вопрос: когда убираю extern компилируется но подозреваю что работает не правильно, хотя по внешним признакам не понятно.

Игорь Гоген пише:
Kaka пише:

Если он extern, то он должен быть описан в другом файле.

И что с этим делать???

About: I am a University of Edinburgh electronics engineering student. More About hertzgamma »
HiHi
Пусть им ошибки их преподватель исправляет, ему за это платят. Моё дело дом сторожить.

Kaka
2019-12-02 09:00:06

Спрашивать у "знающего чела" что это такое и где где оно описано.

Игорь Гоген
2019-12-02 02:54:51
Kaka пише:

Если он extern, то он должен быть описан в другом файле.

И что с этим делать???

Kaka
2019-12-02 02:35:09

Если он extern, то он должен быть описан в другом файле.

Игорь Гоген
2019-12-02 02:00:31

Други, прошу хелпа!
Есть скетч.

// 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
2019-11-24 18:02:45
Kaka пише:
renoshnik пише:

Поэтому нужно фото платы .... может там какой-то аналог ....

Кому нужно? ТС уже, похоже, забил, а нам с Вами нафига? Мне вот не нужно :-)))

так и да ....  wink

Avazart
2019-11-24 16:17:46
renoshnik пише:
Kaka пише:

ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?

Поэтому нужно фото платы .... может там какой-то аналог ....

Я бы сказал нет причин считать иначе.
DTR не что иное  "обвязка" к RST входу, если так можно сказать.

Kaka
2019-11-24 15:57:45
renoshnik пише:

Поэтому нужно фото платы .... может там какой-то аналог ....

Кому нужно? ТС уже, похоже, забил, а нам с Вами нафига? Мне вот не нужно :-)))

renoshnik
2019-11-24 09:54:59
Kaka пише:

ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?

Поэтому нужно фото платы .... может там какой-то аналог ....

Kaka
2019-11-24 01:43:28

ТС написал, что у него ATMega328 - а у неё нет DTR. Не знаю, что Вас так тянет поспорить?

Avazart
2019-11-24 00:52:57
денисс пише:

dtr-dtr

Вполне конкретно.
И логично предположить что плата с DTR.
Другое дело что DTR может не так как предполагается реализован или вовсе фиктивный.

Watchdog
2019-11-23 23:29:36

Летят ... в самолёте,
- Помошник, прибор?
- Восемь!
- Чего восемь?
- А чего прибор?
  lol

Avazart
2019-11-23 21:48:21

Я никогда не видел плат c DTR я делал его переходничком на макетке используя кондесатор прижимая транзистором ресет к земле.
(для прошивки через HC-05)

Kaka
2019-11-23 21:35:17

Да, что там может быть не так, я всё жду от ТС чтобы он сказал куда именно он дтр пхнул. Думаю, на ресет. А если на ресет, то наверняка забыл конденсатор поставить, вот он и не грузит. И не будет хоть жамкай ресет, хоть нет. На ресет жамкать имеет смысл, если DTR никуда не подключён, а если он на ресет заведён, то хоть зажамкайся - скорее переходник USB-UART спалишь.

Підвал форуму