Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Arduino Не могу запустить китайца https://www.cyberforum.ru/ arduino/ thread1581225.html
Купил такую нану http://ru.aliexpress.com/item/1PCS-Nano-3-0-controller-compatible-with-nano-CH340-USB-driver-NO-CABLE-for-Arduino-NANO/32473529871.html?spm=2114.031020208.3.42.De0rnA&ws_ab_test=searchweb201556_6,searchweb201527_1_71_72_73_74_75,searchweb201560_2 Установил IDE, скачал драйвер CH340G, как написано у продавца. Обновил по инструкции к нему, появился новый ком-порт, но! Загружаю в...
Adruino adc + linux Arduino
Всем доброго времени суток. Появилась задача использовать ацп ардуины для проекта на linux. Собственно как читать аналоговый сигнал понятно, с этим никаких проблем, отправить тоже вроде не проблема, но вот как правильно принять >_< уже измучался, то ничего не принимает, то белеберду какую-то, то все верно показывает... Помогите советом, что не так делаю, что надо исправить чтобы получать значение...
Arduino Пдскажите по комплектации Arduino ATMEGA 2560 R3 https://www.cyberforum.ru/ arduino/ thread1578455.html
Заказал в Китае Arduino ATMEGA 2560 R3 и несколько нужных датчиков. Датчик температуры и влажности воздуха Датчик влажности почвы 2 датчика температуры воды Таймер реального времени Датчик уровня воды Клавиатуру Дисплей плата для проводной сети Плата на 8 реле
Arduino Кто-нибудь брал данные с com-порта и использовал их в своих программах? cxem.net/arduino/arduino38.php примерно как тут, ловить данные и показывать их в отдельной программе, кто делал подобное? Есть примеры? https://www.cyberforum.ru/ arduino/ thread1576652.html
Кто разберется в коде Ардуино Cube led? Arduino
http://mezdata.de/avr/stocka-LEDCube-Pattern-Tool-40fdc8a/ кто может объяснить в каком воде и как сохранять с этого сайта код чтобы не было ошибка компиляции !!! я создал но при компиляции ошибка ...
Arduino Обзвон абонентов по GSM и голосовое сообщение Здравствуйте. Я вознамерился собрать автоматическое звонило и рассыльщик смс. У меня есть ардуино UNO, подскажите есть ли GSM модули для ардуино или быть может отдельные на которые можно было бы послать цифровой поток звука в качестве сигнала "микрофона", и можно ли декодировать нажатия тональных клавиш на другом конце ("Если вы хотите соединиться со секретарем нажмите 1"). Если модули не... https://www.cyberforum.ru/ arduino/ thread1567536.html
Arduino Обработка нажатий из браузера (Arduino Mega 2560 + ENC28J60) Всем доброго времени суток! Имею Mega2560 и Ethernet shield enc28j60, был рабочий код на библиотеках "etherShield.h" и "ETHER_28J60.h", в силу надобности авторизации для доступа из интернета перешел на библиотеку <UIPEthernet.h>. Пытаюсь перенести старый код на новую либу, но не могу разобраться как обрабатывать нажатия кнопок в браузере. Старый рабочий код: #include <OneWire.h> #include... https://www.cyberforum.ru/ arduino/ thread1565180.html Arduino Синий или красный?
требуется купить Rfid считыватель, но меня пугает цвет, вроде все детали были красными, ничего что цвет отличается? Добавлено через 6 минут были синими (исправление ошибки)
Arduino Чем эта модель RFID-ридера отличается от этой? http://electromicro.ru/images/cms/data/rfid_web1.jpeg и http://amperka.ru/product/rfid-module-13-56 , стандарт вроде 1 и тот же, но размеры чуть-чуть другие, есть ещё другие отличия? Добавлено через 9 минут http://iarduino.ru/shop/Expansion-payments/rfid-modul-rc522.html кроме цены? https://www.cyberforum.ru/ arduino/ thread1561316.html Arduino Что нужно купить для Arduino и считывателя RFID/NFC? Всем привет! Мне понравились проекты на ардуино и возникло желание поработать с считывателями RFID и/или NFC, но я не знаком с ардуино и самыми простыми проектами (не нужно уговаривать покупать светодиоды и тому подобное, я хочу начать со считывателей) Что нужно купить для этого? 1) Arduino Uno 2) Считыватель 3) Макетная плата 4) Провода (только какие? Мама, Папа. М-М, П-П или П-М?) https://www.cyberforum.ru/ arduino/ thread1561030.html
Arduino Как ловить данные из монитора порта?
В последнее время возникла необходимость куда-нибудь записывать данные из монитора порта в реальном времени, Arduino подключен к компьютеру через usb, к Arduino подключены датчик влажности, если коротко о проекте то нужно быстро записывать в память компьютера каждый раз, когда меняется влажность, прошивку насчет влажности в прошивку уже записана, но как теперь отправить данные в память компьютера?
Arduino Отображение отрицательных значений на индикаторе TM1637 с датчика DS18B20 Здравствуйте.Помогите решить задачу! Проблема с датчиком DS18B20 и сегментным индикатором TM1637 у меня получилось измерить положительную температуру но при замере в холодильнике :) дисплей не отображает отрицательной. Как поправить? #include <TM1637Display.h> #include <OneWire.h> OneWire ds(9); const int CLK = 2; const int DIO = 3; int NumStep = 0; TM1637Display display(CLK, DIO); ... https://www.cyberforum.ru/ arduino/ thread1560500.html
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 14
0

Подскажите как исправить - Arduino - Ответ 8343839

15.11.2015, 14:18. Показов 3421. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте в этом коде при компиляции в строке 85 возникает ошибка :
In file included from sketch_nov15c.ino:4:0:
sketch_nov15c.ino:85:26: error: variable 'preset' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
sketch_nov15c.ino: In function 'void EEPROM_write(unsigned int, unsigned char)':
sketch_nov15c.ino:273:20: error: 'EEWE' was not declared in this scope
sketch_nov15c.ino:276:15: error: 'EEMWE' was not declared in this scope
sketch_nov15c.ino:277:15: error: 'EEWE' was not declared in this scope
sketch_nov15c.ino: In function 'unsigned char EEPROM_read(unsigned int)':
sketch_nov15c.ino:281:20: error: 'EEWE' was not declared in this scope
variable 'preset' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
Подскажите пожалуйста почему она возникает и как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
#include <util/delay.h> 
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
 
#define F_CPU 4800000UL  // Define software reference clock for delay duration
#define SDA_release   DDRB &= 0xEF
#define SDA_low     DDRB |= 0x10
#define SCL_release   DDRB &= 0xF7
#define SCL_low     DDRB |= 0x08
 
#define FREQ_STEPS 10
#define RADIO_REG_CHIPID  0x00
#define RADIO_REG_CTRL    0x02
#define RADIO_REG_CTRL_OUTPUT 0x8000
#define RADIO_REG_CTRL_UNMUTE 0x4000
#define RADIO_REG_CTRL_MONO   0x2000
#define RADIO_REG_CTRL_BASS   0x1000
#define RADIO_REG_CTRL_SEEKUP 0x0200
#define RADIO_REG_CTRL_SEEK   0x0100
#define RADIO_REG_CTRL_RDS    0x0008
#define RADIO_REG_CTRL_NEW    0x0004
#define RADIO_REG_CTRL_RESET  0x0002
#define RADIO_REG_CTRL_ENABLE 0x0001
 
#define RADIO_REG_CHAN    0x03
#define RADIO_REG_CHAN_SPACE     0x0003
#define RADIO_REG_CHAN_SPACE_100 0x0000
#define RADIO_REG_CHAN_BAND      0x000C
#define RADIO_REG_CHAN_BAND_FM      0x0000
#define RADIO_REG_CHAN_BAND_FMWORLD 0x0008
#define RADIO_REG_CHAN_TUNE   0x0010
#define RADIO_REG_CHAN_NR     0x7FC0
#define RADIO_REG_R4    0x04
#define RADIO_REG_R4_EM50   0x0800
#define RADIO_REG_R4_SOFTMUTE   0x0200
#define RADIO_REG_R4_AFC   0x0100
#define RADIO_REG_VOL     0x05
#define RADIO_REG_VOL_VOL   0x000F
 
#define RADIO_REG_RA      0x0A
#define RADIO_REG_RA_RDS       0x8000
#define RADIO_REG_RA_RDSBLOCK  0x0800
#define RADIO_REG_RA_STEREO    0x0400
#define RADIO_REG_RA_NR        0x03FF
 
#define RADIO_REG_RB          0x0B
#define RADIO_REG_RB_FMTRUE   0x0100
#define RADIO_REG_RB_FMREADY  0x0080
 
 
#define RADIO_REG_RDSA   0x0C
#define RADIO_REG_RDSB   0x0D
#define RADIO_REG_RDSC   0x0E
#define RADIO_REG_RDSD   0x0F
 
// I2C-Address RDA Chip for sequential  Access
#define I2C_SEQ  0x20
 
// I2C-Address RDA Chip for Index  Access
#define I2C_INDX  0x22
 
 
#define   RADIO_BAND_NONE     0x0
#define   RADIO_BAND_FM       0x1
#define   RADIO_BAND_FMWORLD  0x2
 
// ----- implement
uint16_t registers[10]={
0x5804,
0x0000,
0x0001,
0x0000,
0x0800,
0x9089, //  последняя цифра громкость  1 - F
0x0000,
0x0000,
0x0000,
0x0000
};
uint8_t fm, vol;
bool BTNUP, BTNDN, BTNSK, BASS , MONO ;
 
//  Частоты радиостанций в вашем регионе 
static uint16_t preset[] PROGMEM= {
  9080,
  10100,
  10140,
  10180, // hr1
  10220,
  10290, // Bayern2
  10340, // ???
  10390, // * hr3
  10430,
  10490,
  10670,
  10720
}; 
 
int main( void )
{  // всё что до while(1){ выполняется один раз при старте
//-----setup--------
  DDRB = 0x00;    //PORTB = Inputs
  PORTB = 0x87;   //Set Outputs to Low (when DDRB is set to low the pin associated goes Hi-Z)
  fm=EEPROM_read(0);
  vol=EEPROM_read(1);
  BASS=EEPROM_read(2);
  MONO=EEPROM_read(3);
  _delay_ms(1000); 
  _saveRegisters();
  setVol();
  setBassBoost();
  setMono();
  setFrequency();
  while(1){ // вечный цыкл, тоже самое что и void loop(){
//----loop--------    
  if (PINB & (1<<PINB0)) BTNUP=0;
  if (PINB & (1<<PINB1)) BTNDN=0;
  if (PINB & (1<<PINB2)) BTNSK=0;
  
  if (!BTNUP & !BTNDN & !BTNSK)
  {
      _delay_ms(5);
   if (!(PINB & (1<<PINB2)))
   {BTNSK=1;
   fm ++;
   if (fm>11) fm=0;  //   11 Количество радиостанций  в таблице
   setFrequency();
   EEPROM_write(0, fm);
   }
    if (!(PINB & (1<<PINB1)))
   {BTNDN=1;
   vol --;
   if (vol<1) vol=1;  
   setVol();
 
   }
    if (!(PINB & (1<<PINB0)))
   {BTNUP=1;
   vol ++;
   if (vol>15) vol=15; 
   setVol();
 
   }
  } else { 
  _delay_ms(5);
if (!(PINB & (1<<PINB2))) { if (BTNUP) {BASS=!BASS; setBassBoost();  BTNUP=0;BTNSK=1;}
                           if (BTNDN) {MONO=!MONO;setMono(); BTNDN=0;BTNSK=1;}     
    } 
   }
  } // конец вечного цикла
  return 0;
}
 
void setVol(void)
{
   registers[RADIO_REG_VOL] = (0x9080 | vol); 
   _saveRegister(RADIO_REG_VOL);
   EEPROM_write(1, vol);
} // setBassBoost()
 
 
void setBassBoost()
{ 
  if (BASS)
  registers[RADIO_REG_CTRL] |= RADIO_REG_CTRL_BASS;
  else
  registers[RADIO_REG_CTRL] &= (~RADIO_REG_CTRL_BASS);
  _saveRegister(RADIO_REG_CTRL);
  EEPROM_write(2, BASS);
} // setBassBoost()
 
 
// Mono / Stereo
void setMono(void)
{ 
 registers[RADIO_REG_CTRL] &= (~RADIO_REG_CTRL_SEEK);
  if (!MONO) {
    registers[RADIO_REG_CTRL] |= RADIO_REG_CTRL_MONO;
  }
  else {
    registers[RADIO_REG_CTRL] &= ~RADIO_REG_CTRL_MONO;
  }
   _saveRegister(RADIO_REG_CTRL);
   EEPROM_write(3, MONO);
 
} // setMono
 
 
void setFrequency(void) {
  uint16_t newChannel;
  uint16_t regChannel = registers[RADIO_REG_CHAN] & (RADIO_REG_CHAN_SPACE | RADIO_REG_CHAN_BAND);
 
  newChannel = (pgm_read_word_near(preset + fm) - 8700) / 10;
  regChannel += RADIO_REG_CHAN_TUNE; // enable tuning
  regChannel |= newChannel << 6;
  
  // enable output and unmute
  registers[RADIO_REG_CTRL] |= RADIO_REG_CTRL_OUTPUT | RADIO_REG_CTRL_UNMUTE | RADIO_REG_CTRL_ENABLE; //  | RADIO_REG_CTRL_NEW
  _saveRegister(RADIO_REG_CTRL);
 
  registers[RADIO_REG_CHAN] = regChannel;
  _saveRegister(RADIO_REG_CHAN);
 
  // adjust Volume
//  _saveRegister(RADIO_REG_VOL);
} // setFrequency()
 
 
// Save one register back to the chip
void _saveRegister(byte regNr)
{
  i2c_start(I2C_INDX);
  i2c_write(regNr);
  _write16(registers[regNr]);
   i2c_stop();
} // _saveRegister
 
void _saveRegisters()
{
  i2c_start(I2C_SEQ);
  for (int i = 2; i <= 6; i++)
  _write16(registers[i]);
   i2c_stop();
} // _saveRegisters
 
void _write16(uint16_t val)
{
  i2c_write(val >> 8); 
  i2c_write(val & 0xFF);
} // _write16
 
void i2c_clk(void)
{
  SCL_release;    //Release Clock
  _delay_us(5);
  SCL_low;      //Pull Clock Low
}
/**************************************************************/
void i2c_write(char data)
{
int i;
 
  for (i=0;i<=7;i++)            //Clocks out byte MSB first
  {
    if (data & 0x80)  {SDA_release;}  //Release Data
    else        {SDA_low;};   //Pull Data Low
    data = data * 2;
    i2c_clk();
  }
 
 // _delay_us(5);
 
  SDA_release;              //Release Data to check for ACK
 
  if (PINB & 0x08){   } //slave didn't acknowledge (data held low by slave)
  else      {   } //slave did acknowledge (data not held low by slave)
  i2c_clk();
  SDA_low;                //Pull Data Low
}
/**************************************************************/
void i2c_start(char data)
{ SDA_low;    //Pull Data Low
  SCL_low;    //Pull Clock Low
  i2c_write(data);
}
/**************************************************************/
void i2c_stop(void)
{
  SCL_release;  //Release Clock
  SDA_release ; //Release Data
}
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
  while(EECR & (1<<EEWE)); /*Ждать завершения предыдущей записи*/
  EEAR = uiAddress; /*Проинициализировать регистры*/
  EEDR = ucData;
  EECR |= (1<<EEMWE); /*Установить флаг EEMWE*/
  EECR |= (1<<EEWE); /*Начать запись в EEPROM*/
}
unsigned char EEPROM_read(unsigned int uiAddress)
{
  while(EECR & (1<<EEWE)); /*Ждать завершения предыдущей записи*/
  EEAR = uiAddress; /* Проинициализировать регистр адреса*/
  EECR |= (1<<EERE); /*Выполнить чтение*/
  return EEDR;
}


Вернуться к обсуждению:
Подскажите как исправить Arduino
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2015, 14:18
Готовые ответы и решения:

Подскажите как исправить
Здравствуйте, подскажите как исправить пожалуйста. //отобаение всех аргументов команднй строки...

Подскажите как исправить
Здравствуйте, подскажите пожалуйста как исправить эту ошибку при восстановлении БД из дампа?

Подскажите как исправить?
Выводит только цену 1000, но хотя и другие цены должен выводить. string showPrice = &quot;SELECT...

подскажите как исправить
Здравствуйте, помогите пожалуйста решить, я только начинаю. Internal error:...

4
15.11.2015, 14:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 14:18
Помогаю со студенческими работами здесь

Подскажите как исправить ошибку
писал программу по заданию и не могу понять где ошибка но у меня она решает не правильно...

ошибка подскажите как исправить!!
1&gt;d:\calcu\calcu\Form1.h(343): error C3861: strtoint32: идентификатор не найден int a; int b; a...

Подскажите как исправить ошибку
Здравствуйте! Подскажите, как исправить ошибку при выполнении программы: #include &lt;iostream&gt;...

подскажите как исправить ошибки
билдер 6 ошибка : Public symbol '_File_read_mass' defined in both module C:\PRG\UNIT1.OBJ and...

Подскажите как исправить функцию
bool addNode(TNode *first, int key) { TNode* tmp=first; if(tmp-&gt;Right)...

Подскажите как исправить ошибки.
Подскажите как исправить ошибки. Код задачи на VB, где комментарий надо сделать проверку не могу...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru