В данной статье пойдет речь о том, как подключить датчик температуры DS18B20 к ATmega8 и отображать данные на ЖКИ-дисплее 16×1 на базе HD44780. Будут приведены три примеры программ работы с датчиком температуры, а именно: самый простой — подключение одного DS18B20 к ATmega8; подключение нескольких DS18B20 к ATmega8 на разные выводы микроконтроллера; самый сложный — подключение нескольких датчиков температуры DS18B20 к ATmega8 на одну шину. Для проверки работоспособности программ и схем был использован эмулятор Proteus 7 (ISIS 7 Professional). Код программ (проекты в Atmel Studio 7 целиком) вы сможете скачать по ссылке в конце статьи. После оптимизации кода вместо ATmega8 можно использовать более простой микроконтроллер ATtiny2313.
OneWire библиотека
config.h
#ifndef CONFIG_H_
#define CONFIG_H_
#define F_CPU 8000000UL
#define ONE_WIRE_PORT PORTB
#define ONE_WIRE_DDR DDRB
#define ONE_WIRE_PIN PINB
#endif /* CONFIG_H_ */
OneWire.h
#ifndef ONEWIRE_H_
#define ONEWIRE_H_
#define CMD_CONVERTTEMP 0x44
#define CMD_RSCRATCHPAD 0xbe
#define CMD_WSCRATCHPAD 0x4e
#define CMD_CPYSCRATCHPAD 0x48
#define CMD_RECEEPROM 0xb8
#define CMD_RPWRSUPPLY 0xb4
#define CMD_SEARCHROM 0xf0
#define CMD_READROM 0x33
#define CMD_MATCHROM 0x55
#define CMD_SKIPROM 0xcc
#define CMD_ALARMSEARCH 0xec
void oneWireInit(uint8_t);
void writeBit(uint8_t);
void writeByte(uint8_t);
void setDevice(uint64_t);
void searchRom(uint64_t*, uint8_t&);
void skipRom(void);
uint8_t readByte(void);
uint8_t readBit(void);
uint8_t reset(void);
uint8_t crcCheck(uint64_t, uint8_t);
uint64_t readRoom(void);
uint64_t searchNextAddress(uint64_t, uint8_t&);
extern uint8_t ONE_WIRE_DQ;
#endif /* ONEWIRE_H_ */
OneWire.cpp
#define DEVICES_ERROR 1
#include "config.h"
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "OneWire.h"
uint8_t ONE_WIRE_DQ = PINB0;
void oneWireInit(uint8_t pin) {
ONE_WIRE_DQ = pin;
ONE_WIRE_PORT |= (1 << ONE_WIRE_DQ);
ONE_WIRE_DDR |= (1 << ONE_WIRE_DQ); // выход
}
/*
* сброс
*/
uint8_t reset() {
uint8_t response;
// импульс сброса, минимум 480us
ONE_WIRE_PORT &= ~(1 << ONE_WIRE_DQ);
ONE_WIRE_DDR |= (1 << ONE_WIRE_DQ); // выход
_delay_us(480);
// Когда ONE WIRE устройство обнаруживает положительный перепад, он ждет от 15us до 60us
ONE_WIRE_DDR &= ~(1 << ONE_WIRE_DQ); // вход
_delay_us(60);
// и затем передает импульс присутствия, перемещая шину в логический «0» на длительность от 60us до 240us.
response = (ONE_WIRE_PIN & (1 << ONE_WIRE_DQ));
_delay_us(410);
// если 0, значит есть ответ от датчика, если 1 - нет
return response;
}
/*
* отправить один бит
*/
void writeBit(uint8_t bit) {
if (bit & 1) {
cli();
// логический «0» на 1us
ONE_WIRE_PORT &= ~(1 << ONE_WIRE_DQ);
ONE_WIRE_DDR |= (1 << ONE_WIRE_DQ); // выход
_delay_us(10);
sei();
ONE_WIRE_DDR &= ~(1 << ONE_WIRE_DQ); // вход
_delay_us(55);
} else {
cli();
// логический «0» на 1us
ONE_WIRE_PORT &= ~(1 << ONE_WIRE_DQ);
ONE_WIRE_DDR |= (1 << ONE_WIRE_DQ); // выход
_delay_us(65);
ONE_WIRE_DDR &= ~(1 << ONE_WIRE_DQ); // вход
sei();
_delay_us(5);
}
}
/*
* отправить один байт
*/
void writeByte(uint8_t byte) {
uint8_t i = 8;
while (i--) {
writeBit(byte & 1);
byte >>= 1;
}
}
/*
* получить один байт
*/
uint8_t readByte() {
uint8_t i = 8, byte = 0;
while (i--) {
byte >>= 1;
byte |= (readBit() << 7);
}
return byte;
}
/*
* получить один бит
*/
uint8_t readBit(void) {
uint8_t bit = 0;
cli();
// логический «0» на 1us
ONE_WIRE_PORT &= ~(1 << ONE_WIRE_DQ);
ONE_WIRE_DDR |= (1 << ONE_WIRE_DQ); // вход
_delay_us(3);
// освободить линию и ждать 14us
ONE_WIRE_DDR &= ~(1 << ONE_WIRE_DQ); // вход
_delay_us(10);
// прочитать значение
if (ONE_WIRE_PIN & (1 << ONE_WIRE_DQ)) {
bit = 1;
}
// ждать 45us и вернуть значение
sei();
_delay_us(45);
return bit;
}
/*
* читать ROM подчиненного устройства (код 64 бита)
*/
uint64_t readRoom(void) {
uint64_t oneWireDevice;
if(reset() == 0) {
writeByte(CMD_READROM);
// код семейства
oneWireDevice = readByte();
// серийный номер
oneWireDevice |= (uint16_t)readByte()<<8 | (uint32_t)readByte()<<16 | (uint32_t)readByte()<<24 | (uint64_t)readByte()<<32 | (uint64_t)readByte()<<40 | (uint64_t)readByte()<<48;
// CRC
oneWireDevice |= (uint64_t)readByte()<<56;
} else {
return 1;
}
return oneWireDevice;
}
/*
* Команда соответствия ROM, сопровождаемая последовательностью
* кода ROM на 64 бита позволяет устройству управления шиной
* обращаться к определенному подчиненному устройству на шине.
*/
void setDevice(uint64_t rom) {
uint8_t i = 64;
reset();
writeByte(CMD_MATCHROM);
while (i--) {
writeBit(rom & 1);
rom >>= 1;
}
}
/*
* провеска CRC, возвращает "0", если нет ошибок
* и не "0", если есть ошибки
*/
uint8_t crcCheck(uint64_t data8x8bit, uint8_t len) {
uint8_t dat, crc = 0, fb, stByte = 0;
do {
dat = (uint8_t) (data8x8bit >> (stByte * 8));
for (int i = 0; i < 8; i++) { // счетчик битов в байте
fb = crc ^ dat;
fb &= 1;
crc >>= 1;
dat >>= 1;
if (fb == 1) {
crc ^= 0x8c; // полином
}
}
stByte++;
} while (stByte < len); // счетчик байтов в массиве
return crc;
}
/*
* поиск устройств
*/
void searchRom(uint64_t * roms, uint8_t & n) {
uint64_t lastAddress = 0;
uint8_t lastDiscrepancy = 0;
uint8_t err = 0;
uint8_t i = 0;
do {
do {
lastAddress = searchNextAddress(lastAddress, lastDiscrepancy);
if(lastAddress != DEVICES_ERROR) {
uint8_t crc = crcCheck(lastAddress, 8);
if (crc == 0) {
roms[i++] = lastAddress;
err = 0;
} else {
err++;
}
} else {
err++;
}
if (err > 3) {
return;
}
} while (err != 0);
} while (lastDiscrepancy != 0 && i < n);
n = i;
}
/*
* поиск следующего подключенного устройства
*/
uint64_t searchNextAddress(uint64_t lastAddress, uint8_t & lastDiscrepancy) {
uint8_t searchDirection = 0;
uint64_t newAddress = 0;
uint8_t idBitNumber = 1;
uint8_t lastZero = 0;
reset();
writeByte(CMD_SEARCHROM);
while (idBitNumber < 65) {
uint8_t idBit = readBit();
uint8_t cmpIdBit = readBit();
// id_bit = cmp_id_bit = 1
if (idBit == 1 && cmpIdBit == 1) {
return DEVICES_ERROR;
} else if (idBit == 0 && cmpIdBit == 0) {
// id_bit = cmp_id_bit = 0
if (idBitNumber == lastDiscrepancy) {
searchDirection = 1;
} else if (idBitNumber > lastDiscrepancy) {
searchDirection = 0;
} else {
if ((uint8_t) (lastAddress >> (idBitNumber - 1)) & 1) {
searchDirection = 1;
} else {
searchDirection = 0;
}
}
if (searchDirection == 0) {
lastZero = idBitNumber;
}
} else {
// id_bit != cmp_id_bit
searchDirection = idBit;
}
newAddress |= ((uint64_t) searchDirection) << (idBitNumber - 1);
writeBit(searchDirection);
idBitNumber++;
}
lastDiscrepancy = lastZero;
return newAddress;
}
/*
* пропустить ROM
*/
void skipRom() {
reset();
writeByte(CMD_SKIPROM);
}
Подключение одного DS18B20 к ATmega8
Самый простой способ подключения термодатчика DS18B20 к микроконтроллеру, конечно же, подключение одного датчика. В таком случае нет необходимости искать адрес подключённого датчика, а можем напрямую с ним общаться и считывать данные. Всё это возможно благодаря команды SKIP ROM [CCh] — Пропуск ROM [CCh]. Обратите внимание, что команда ЧТЕНИЕ ПАМЯТИ [BEh] может следовать за командой Пропуска ROM, только если на шине присутствует одно подчиненное устройство. Команда Пропуска ROM, сопровождаемая командой ЧТЕНИЕ ПАМЯТИ вызовет конфликт на уровне данных на шине, если на шине более одного подчиненного устройства, так как все устройства будут пытаться одновременно передавать данные.
main.cpp
#include "config.h"
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "OneWire.h"
#include "LCD.h"
// 123.4
// numbers[0] = 123
// numbers[1] = 4
inline void explodeDoubleNumber(int* numbers, double flt) {
numbers[0] = abs((int) flt);
numbers[1] = abs((int) ((flt - ((int) flt)) * 10));
}
inline void printTemp(double d) {
char text[17] = "T = ";
int fs[2];
char num[5];
explodeDoubleNumber(fs, d);
if (d < 0) {
strcat(text, "-");
}
itoa(fs[0], num, 10);
strcat(text, num);
strcat(text, ".");
itoa(fs[1], num, 10);
strcat(text, num);
strcat(text, "'C");
lcdClear();
lcdGotoXY(0, 0);
lcdPuts(text);
}
double getTemp(void) {
uint8_t temperatureL;
uint8_t temperatureH;
double retd = 0;
skipRom();
writeByte(CMD_CONVERTTEMP);
_delay_ms(750);
skipRom();
writeByte(CMD_RSCRATCHPAD);
temperatureL = readByte();
temperatureH = readByte();
retd = ((temperatureH << 8) + temperatureL) * 0.0625;
return retd;
}
int main(void) {
_delay_ms(100);
lcdInit();
lcdClear();
lcdSetDisplay(LCD_DISPLAY_ON);
lcdSetCursor(LCD_CURSOR_OFF);
oneWireInit(PINB0);
double temperature;
while (1) {
temperature = getTemp();
printTemp(temperature);
_delay_ms(500);
}
}
// site: http://micro-pi.ru
double getTemp(void)
— возвращает данные температуры в градусах Цельсия.
inline void printTemp(double d)
— отображает на экран температуру.
inline void explodeDoubleNumber(int* numbers, double flt)
— преобразует вещественное число flt в два целых, которые записываются в numbers.
Вместо функций inline void printTemp(double d)
и inline void explodeDoubleNumber(int* numbers, double flt)
можно использовать sprintf(), но она жрёт слишком много памяти.
Обычное питание
Результат
Паразитное питание
Результат
Подключение нескольких DS18B20 к ATmega8
Подключить несколько датчиков DS18B20 к ATmega8 или к другому микроконтроллеру, можно двумя способами. Первый способ — датчики можно подключить на разные выводы микроконтроллера, это самый простой способ, но в таком случае число подключенных датчиков зависит от числа выводов. Второй и самый лучший способ — это подключить все датчики на одну шину, в данном случае необходимо будет найти адреса всех подключённых датчиков.
Подключение нескольких DS18B20 к ATmega8 на разные выводы
main.cpp
#include "config.h"
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "OneWire.h"
#include "LCD.h"
// 123.4
// numbers[0] = 123
// numbers[1] = 4
inline void explodeDoubleNumber(int* numbers, double flt) {
numbers[0] = abs((int) flt);
numbers[1] = abs((int) ((flt - ((int) flt)) * 10));
}
inline void printTemp(double d, uint8_t i) {
char text[17] = "T[";
int fs[2];
char num[5];
itoa(i, num, 10);
strcat(text, num);
strcat(text, "]=");
explodeDoubleNumber(fs, d);
if (d < 0) {
strcat(text, "-");
}
itoa(fs[0], num, 10);
strcat(text, num);
strcat(text, ".");
itoa(fs[1], num, 10);
strcat(text, num);
strcat(text, "'C");
lcdClear();
lcdGotoXY(0, 0);
lcdPuts(text);
}
double getTemp(uint8_t pin) {
uint8_t temperatureL;
uint8_t temperatureH;
double retd = 0;
oneWireInit(pin);
skipRom();
writeByte(CMD_CONVERTTEMP);
_delay_ms(750);
skipRom();
writeByte(CMD_RSCRATCHPAD);
temperatureL = readByte();
temperatureH = readByte();
retd = ((temperatureH << 8) + temperatureL) * 0.0625;
return retd;
}
int main(void) {
_delay_ms(100);
lcdInit();
lcdClear();
lcdSetDisplay(LCD_DISPLAY_ON);
lcdSetCursor(LCD_CURSOR_OFF);
double temperature;
uint8_t pin = 0;
while (1) {
temperature = getTemp(pin);
printTemp(temperature, pin);
if (pin == 4) {
pin = 0;
} else {
pin++;
}
_delay_ms(500);
}
}
// site: http://micro-pi.ru
Результат
Подключение нескольких DS18B20 к ATmega8 на одну шину
При подключение нескольких датчиков DS18B20 к ATmega8 на одну шину, главное устройство (микроконтроллер) должно определить коды ROM всех подчиненных устройств на шине. Команда SEARCH ROM [F0h] — (ПОИСК ROM) позволяет устройству управления определять номера и типы подчиненных устройств. Устройство управления изучает коды ROM через процесс устранения, которое требует, чтобы Главное устройство исполнил цикл Поиска ROM (то есть, команда ROM Поиска, сопровождаемая обменом данных). Эту процедуру необходимо выполнить столько раз, сколько необходимо, чтобы идентифицировать все из подчиненных устройств. Если есть только одно подчиненное устройство на шине, более простая команда READ ROM [33h] (Чтения ROM) может использоваться место процесса Поиска ROM.
После каждого цикла Поиска ROM, устройство управления шиной должно возвратиться к Шагу 1 (Инициализация) в операционной последовательности.
Алгоритм поиска 1-Wire устройств с использованием команды Search ROM прекрасно описан в этом видео:
main.cpp
#include "config.h"
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "OneWire.h"
#include "LCD.h"
// 123.4
// numbers[0] = 123
// numbers[1] = 4
inline void explodeDoubleNumber(int* numbers, double flt) {
numbers[0] = abs((int) flt);
numbers[1] = abs((int) ((flt - ((int) flt)) * 10));
}
inline void printTemp(double d, uint8_t i) {
char text[17] = "T[";
int fs[2];
char num[5];
itoa(i, num, 10);
strcat(text, num);
strcat(text, "]=");
explodeDoubleNumber(fs, d);
if (d < 0) {
strcat(text, "-");
}
itoa(fs[0], num, 10);
strcat(text, num);
strcat(text, ".");
itoa(fs[1], num, 10);
strcat(text, num);
strcat(text, "'C");
lcdClear();
lcdGotoXY(0, 0);
lcdPuts(text);
}
double getTemp(uint64_t ds18b20s) {
uint8_t temperatureL;
uint8_t temperatureH;
double retd = 0;
setDevice(ds18b20s);
writeByte(CMD_CONVERTTEMP);
_delay_ms(750);
setDevice(ds18b20s);
writeByte(CMD_RSCRATCHPAD);
temperatureL = readByte();
temperatureH = readByte();
retd = ((temperatureH << 8) + temperatureL) * 0.0625;
return retd;
}
int main(void) {
_delay_ms(100);
lcdInit();
lcdClear();
lcdSetDisplay(LCD_DISPLAY_ON);
lcdSetCursor(LCD_CURSOR_OFF);
oneWireInit(PIND7);
double temperature;
uint8_t n = 8;
uint64_t roms[n];
searchRom(roms, n);
char txt[17] = "devices [";
char num[5];
itoa(n, num, 10);
strcat(txt, num);
strcat(txt, "]");
lcdClear();
lcdGotoXY(0, 0);
lcdPuts(txt);
_delay_ms(2000);
while (1) {
for (uint8_t i = 0; i < n; i++) {
temperature = getTemp(roms[i]);
printTemp(temperature, i + 1);
_delay_ms(500);
}
}
}
// site: http://micro-pi.ru
Обычное питание
Результат
Паразитное питание
Результат
Внимание! При использовании паразитного питания не рекомендуется использовать датчики для температуры выше +100ºC, а также при операциях преобразования температуры и копирования данных из Scratchpad в один из регистров EEPROM, потребляемый ток может достигать 1.5 мА, что непосильно внутреннему конденсатору, а на резисторе подтяжки (R1 4.7k) будет большое падение напряжения, что недопустимо скажется на работе устройства в целом. Для этого необходимо организовать линии DQ схему мощной подтяжки, реализуемой по такой схеме:
После выдачи команды конвертирования температуры [44h] или копирования ОЗУ В ПЗУ (Copy Scratchpad) [48h] необходимо включить мощную подтяжку MOSFET-транзистором линии DQ на 10 мкс (макс.), как указанно в даташите датчика, после чего выждать время преобразования или время передачи данных, причем в это время никаких действий при включенной мощной подтяжке на линии DQ быть не должно!
Скачать Atmel Studio 7 проекты и схемы в ISIS Professional (Proteus):
DS18B20 + LCD 16×2 + ATmega8 — ISIS Professional (Proteus)
DS18B20 + LCD 16×2 + ATmega8 — Atmel Studio 7
Собрал пример с одним датчиком, LCD только двухстрочны. На экране «Т = -0,0 С». Почему так???
Все заработало, разобрался.Дело в конфигурации фьюзов, по умолчанию частота стоит 1мгц , а по коду надо 8мгц. Я новичок по этому не сразу вник в детали. А какая конфигурация фьюзов используется вами в данном проекте? На примере khazama AVR.
Спасибо за интересную статью!!! А аналогичные примеры есть с применением I2C подключения к LCD в Atmel Studio???
Жаль, а я только пытаюсь изучить студию…..
Здравствуйте! Пытаюсь внедрить Ваш код по подключению двух датчиков на одну шину в Atmel Studio 6.2. Дело в том, что основной проект у меня написан на СИ (не СИ++), и почему-то компилятор ругается на два определения в OneWire.h и соответственно OneWire.cpp:
void searchRom(uint64_t*, uint8_t&);
и
uint64_t searchNextAddress(uint64_t, uint8_t&);
а именно на знак «&». Честно сказать не понимаю зачем он нужен, но после того как его убрал, проект успешно скомпилировался, но возникла проблема — в массиве rom после выполнения функции searchRom(roms, n), определяется только один серийный номер датчика (второй равен нулю) и соответственно выводится температура только его одно. Помогите разобраться в чем дело. Заранее спасибо.
admin, большое спасибо!
Спасибо вам за статью, вы мне значительно облегчили работу с курсовым проектом
скомпилировал версию c одним датчиком «1xDS18B20+LCD 16×2+ATmega8» в AtmelStudio7 — успешно под atmega8, получил hex, пошел в протеус 8.2 sp3 — перерисовал схему, загрузил ранее полученную прошивку — в результате экран показывает «T= -0.0C» скриншот
было тожесамое как и Евгения «Все заработало, разобрался.Дело в конфигурации фьюзов, по умолчанию частота стоит 1мгц , а по коду надо 8мгц. »
переключил в протеусе фьюз на 8мгц внутренний и заработало
Hi! В OneWire.cpp cтрока 7:
uint8_t ONE_WIRE_DQ = PINB0;
что это значит, ведь датчики подключены к порту D пин 7???
Автору огромное спасибо! Всё работает (прилагая свои мозги и прямые руки ;). Пытаясь подружить Atmel и MPLAB-X v5.2, адаптировал код автора под тулчайн WinAVR — работает так как надо!!!
Здравствуйте, запустил в протеусе схему с одним датчиком, и загрузил программу туда — все работало.
Решил сделать термометр, когда собрал, программу залил в Atmega8 через SinaProg, термометр запитываю с ArduinoUno — все выключается. Вытаскиваю датчик, подключаю питание экран показывает » t=-9999*C «.
Получается что с датчиком схема выключается из-за короткого замыкания, без датчика вроде все работает, но температуру не показывает, схему проверял мультиметром замыканий ни где нет, проверил контакт PB2 включенным без датчика он выдает 5 Вольт, хотя если PB2 настроен на считывание то там не должно быть этих 5-ти Вольт.
Подскажите что можно сделать
А можно туже самую задачу, только на «С»?И еще превратить простой термометр в многоканальный терморегулятор?
Но как опрашивать датчики по порядку, по адресам, если они на одном проводе?
Доброго времени суток!!!
Спасибо за проделанную работ!!!
Особенно понравилась написанная работа, над поиском rom code с помощью регистров lastDiscrepancy и lastZero.
Подскажите как обойтись без цикла for и без задержки, а сделать все по прерыванию таймера? Что бы не занимать в пустую тактовое время?
for (uint8_t i = 0; i < n; i++) {
temperature = getTemp(roms[i]);
printTemp(temperature, i + 1);
_delay_ms(1000);
}
У Вас Функция itoa() конвертирует целое число num в строчный эквивалент и помещает результат в строку?
Решил с ассемблера перейти на си, все вроде как бы понятно, но не очень, пока путаюсь в самом синтаксисе языка си.
Доброго времени суток!!!
Подскажите название переменных, где лежит окончательная преобразованная температура двух DS в десятичном виде, после считывания с DS? Что бы была возможность оперировать условиями при изменении температуры.
Я в отладчике смотрел изменение переменных так и не понял какие.
Добавил в Ваш код по таймеру 1 атмега128. Без задержки.
for (uint8_t i = 0; i < n; i++){
temperature = getTemp(roms[i]);
if (BIT_state ==1){
printTemp(temperature, i + 1);
// _delay_ms(1000);
}
}
Доброго времени суток!!!
Если есть время подскажите как на языке С, с переменной uint64_t — byte_data_rom конвертировать в удобочитаемый вид, для вывода посимвольно считанного romcode на LCD?
void RomReader() { uint8_t i; dt_testdevice(); // здесь возвращает результат устройство есть или нет dt_sendbyte (READ_ROM); //здесь посылаем 0X33 for (i=0; i<8; i++) { byte_data_rom = dt_readbyte (); // а здесь результат прочитанного копируем в byte_data_rom. } }
Я таким макаром, вывожу на дисплей.
LCDGotoXY(0,1); LCDdata('D'); LCDdata('S'); LCDdata('='); LCDdata(temper/10+0x30); LCDdata(temper%10+0x30); Два ds18b20, ds1307, кнопки, LCD, UART. Все занимает 2.5 киллобайта
Пока есть свободное время, недельки две, хочу позаниматься языком Си.
Всё-таки не работает ни один код. Пробовал с разными датчиками: в корпусе ТО-92 и в герметичном. Показывает -0.0 или без минуса 0.0.
Автор самозванец, никакой он не препод в универе. Код передран отсюда: https://narodstream.ru/stm-urok-94-ds18b20-podklyuchaem-neskolko-datchikov-na-provod-chast-1/ и переделан под ATmega8.
Здравствуйте! Пытаюсь внедрить Ваш код по подключению двух датчиков на одну шину в Atmel Studio 6.2. Дело в том, что основной проект у меня написан на СИ (не СИ++), и почему-то компилятор ругается на два определения в OneWire.h и соответственно OneWire.cpp:
void searchRom(uint64_t*, uint8_t&);
и
uint64_t searchNextAddress(uint64_t, uint8_t&);
а именно на знак «&». Честно сказать не понимаю зачем он нужен, но после того как его убрал, проект успешно скомпилировался, но возникла проблема — в массиве rom после выполнения функции searchRom(roms, n), определяется только один серийный номер датчика (второй равен нулю) и соответственно выводится температура только его одно. Помогите разобраться в чем дело. Заранее спасибо
доброго времени суток почему то не компилируется ругается на #include «config.h»
1 раз отработал и все. Больше в протеусе не работает. на табло -0.0. Частота 8мГц. Все коды по 1 разу отработали …
Здравствуйте. Вопрос : почему микрочип(atmelstudio) не компилирует вот эта #ifndef CONFIG_H_
#define CONFIG_H_
#define F_CPU 8000000UL
#define ONE_WIRE_PORT PORTB
#define ONE_WIRE_DDR DDRB
#define ONE_WIRE_PIN PINB
#endif /* CONFIG_H_ */
iphone 16 256gb best iphone
1vin https://www.pboarders.borda.ru/?1-11-0-00000929-000-0-0-1742818701 .
mostbet chrono https://www.shorts.borda.ru/?1-18-0-00000397-000-0-0 .
1 win https://boardwars.forum24.ru/?1-10-0-00000406-000-0-0/ .
mostbet https://tagilshops.forum24.ru/?1-4-0-00000205-000-0-0 .
Банкротство является прекрасной возможностью списать долги и начать жизнь с чистого листа. Не откладывайте решение проблемы, прочитайте отзывы тех, кто уже прошел процедуру банкротства банкротство физических лиц .
mostbest https://kharkovbynight.forum24.ru/?1-15-0-00003047-000-0-0-1742814422 .
1вин бет официальный сайт 1вин бет официальный сайт .
мостбет скачать https://www.maksipolinovtsu.forum24.ru/?1-1-0-00000194-000-0-0-1742815870 .
зайти в 1вин dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537 .
1 вин вход http://zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050/ .
1win личный кабинет https://knowledge.forum24.ru/?1-0-0-00000101-000-0-0-1742817704/ .
mostbet chrono https://mostbet6004.ru/ .
игра 1вин игра 1вин .
мостбет скачать http://girikms.forum24.ru/?1-1-0-00000361-000-0-0-1742819287/ .
мостбет казино https://www.hiend.borda.ru/?1-16-0-00000259-000-0-0-1743052953 .
motbet http://alfatraders.borda.ru/?1-0-0-00004917-000-0-0-1743053068 .
игра 1вин https://fanfiction.borda.ru/?1-0-0-00029708-000-0-0-1743051664 .
1win партнерка вход 1win партнерка вход .
mostbet kg скачать https://www.svstrazh.forum24.ru/?1-18-0-00000136-000-0-0-1743260517 .
Законное списание долгов по 127-ФЗ https://bankrotstvo-v-moskve95.ru .
мостбет кг мостбет кг .
1win скачать kg https://1win6054.ru .
1win bets http://www.1win13.com.ng .
1win 1win .
cazinouri online moldova cazinouri online moldova .
мосбет казино https://mostbet6011.ru .
ван вин https://www.1win6008.ru .
1win букмекер https://www.1win6045.ru .
1 вин https://www.1win6045.ru .
мойка окон после ремонта cleaning top24
клининговая компания цена cleaning-top24.ru/
1win ставки официальный сайт 1win5030.ru .
прокат машин во владивостоке без водителя взять в аренду автомобиль во владивостоке
аренда и прокат авто в санкт петербурге аренда автомобиля на неделю спб
мостбет авиатор https://www.mostbet5003.ru .
1 win сайт https://www.1win7004.ru .
скачать mostbet http://mostbet7001.ru/ .
mostbet kg скачать на андроид http://mostbet6038.ru/ .
1win https://1win7017.ru/ .
înregistrare 1win https://www.1win5027.ru .
1win betting 1win18.com.ng .
1win.pro http://www.1win5026.ru .
мостбет мостбет .
1win rossvya http://1win7006.ru/ .
1win,com 1win7018.ru .
mosbet 1win5028.ru .
1win online http://1win7007.ru/ .
поддержка мостбет https://www.mostbet5008.ru .
1win live https://www.1win7009.ru .
mostbets http://mostbet5010.ru/ .
1win uganda https://1win1005.top .
мостбет авиатор http://mostbet5009.ru/ .
Индивидуальный пошив штор
пошив штор на заказ пошив штор на заказ .
Сшить шторы на заказ по индивидуальному проекту, лучшие цены.
Качественные шторы на заказ, по выгодной цене.
Создание штор мечты, под любой стиль.
Лучшие ткани для штор на заказ, подчеркивающие ваш стиль.
Пошив штор на заказ для кухни, под ваш вкус.
Индивидуальный дизайн штор, под любой бюджет.
Пошив штор для нестандартных окон, с учетом особенностей помещения.
Эксклюзивные шторы на заказ, по вашему желанию.
Современные шторы на заказ, под любой интерьер.
Создание штор для любого типа окна, от ведущих мастеров.
Изготовление штор на заказ на любой вкус, с гарантией качества.
Изготовление штор на заказ быстро и недорого, с высоким качеством.
Модные шторы на заказ для вашего дома, от ведущих дизайнеров.
Дизайнерские шторы на заказ, по вашему проекту.
Пошив штор по индивидуальному дизайну, по мере необходимости.
Пошив штор на заказ с индивидуальным подходом, под любой стиль.
сшить шторы на заказ сшить шторы на заказ . Прокарниз
Лучшие шторы на заказ
пошив штор на заказ пошив штор на заказ .
мост бет https://www.mostbet7007.ru .
1 win официальный сайт https://1win7012.ru .
olympe: olympe casino avis — olympe casino
casino olympe: olympe casino — olympe casino
olympe casino avis: olympe casino — olympe casino avis
Закажите уникальные шторы на заказ, отличное качество.
Идеальные шторы по вашим размерам, с гарантией качества.
Пошив штор по индивидуальному дизайну, по вашим размерам.
Эксклюзивные шторы на заказ, высокое качество материалов.
Пошив штор на заказ для кухни, с индивидуальным подходом.
Профессиональный пошив штор по вашим размерам, по вашим желанием.
Создание штор на заказ из натуральных тканей, по желанию.
Эксклюзивные шторы на заказ, от профессионалов.
Классические шторы на заказ, с учетом светотени.
Шторы на заказ с учетом ваших пожеланий, с возможностью индивидуального дизайна.
Изготовление штор на заказ на любой вкус, под любой интерьер.
Доступные цены на шторы на заказ, с высоким качеством.
Элегантные шторы на заказ, под любой стиль интерьера.
Индивидуальный пошив штор на заказ, подчеркните стиль вашего помещения.
Шторы на заказ с доставкой и монтажом, по мере необходимости.
Эксклюзивные ткани для пошива штор, под любой стиль.
сшить шторы на заказ сшить шторы на заказ . Prokarniz
olympe casino cresus casino olympe
Мы предлагаем дипломы любой профессии по приятным ценам.— vuz-diplom.ru/kupit-diplom-visshego-obrazovaniya-s-zaneseniem-bistro-2/
olympe casino olympe casino
olympe casino: olympe — olympe casino cresus
Шторы на лесных участках: особенности выбора
шторы в загородном доме шторы в загородном доме .+7 (499) 460-69-87
olympe casino cresus: olympe — olympe casino avis
скачать mostbet https://mostbet6040.ru/ .
olympe casino cresus: olympe casino avis — olympe casino avis
Мы изготавливаем дипломы любой профессии по приятным тарифам. Мы можем предложить документы ВУЗов, расположенных в любом регионе Российской Федерации. Дипломы и аттестаты делаются на «правильной» бумаге самого высокого качества. Это позволяет делать настоящие дипломы, не отличимые от оригинала. ministryboard.org/employer/archive-diploma
olympe: olympe casino — olympe casino cresus
olympe casino avis: olympe casino en ligne — olympe casino
mostbet. com mostbet. com .
olympe casino cresus: olympe casino cresus — casino olympe
Закажите уникальные шторы на заказ по лучшим ценам
шторы на заказ шторы на заказ . Ткацкий
watch comics free graphic novels online
olympe casino olympe
1win официальный 1win официальный .
olympe casino casino olympe
Лучшие шторы для спокойствия и уюта, подчеркните дизайн, советы по выбору штор для дачи, теплота и уют, максимальная функциональность, натуральные ткани для штор, шторы для защиты от солнца, модные тренды в шторном дизайне, выбираем шторы для загородной гостиной, примеры оформления окон с шторами, шторы из натуральных материалов для уюта, автоматические шторы для загородного дома, стили штор для различных комнат, декор и оформление окон в загородном доме, обеспечьте комфорт с нашими шторами, выбор стильных штор для загородного дома, плюсы и минусы разных видов штор, используйте шторы для зонирования пространства, подбираем шторы под сезон
шторы в загородном доме шторы в загородном доме .
Создайте уют с эксклюзивными шторами на заказ
шторы на заказ шторы на заказ . «Ткацкий»
https://pharmafst.com/# vente de mГ©dicament en ligne
1win зеркало сайта online http://1win8011.ru/ .
Мы готовы предложить дипломы любой профессии по приятным ценам. Всегда стараемся поддерживать для покупателей адекватную политику цен. Важно, чтобы документы были доступными для подавляющей массы граждан.
Заказ документа, который подтверждает обучение в университете, — это выгодное решение. Купить диплом о высшем образовании: diploms-vuza.com/zaregistrirovannij-diplom-kupit-2/
Kamagra Oral Jelly pas cher: kamagra 100mg prix — kamagra 100mg prix
kamagra livraison 24h: kamagra gel — kamagra livraison 24h
Закажите шторы на любую комнату
сшить шторы на заказ сшить шторы на заказ . Ткацкий
https://tadalmed.shop/# Cialis sans ordonnance 24h
Электроуправляемые деревянные горизонтальные жалюзи
Деревянные горизонтальные жалюзи с электроприводом Деревянные горизонтальные жалюзи с электроприводом . прокарниз
Acheter Kamagra site fiable: Kamagra pharmacie en ligne — kamagra gel
https://tadalmed.shop/# Cialis en ligne
https://pharmafst.shop/# pharmacie en ligne france fiable
acheter kamagra site fiable: kamagra pas cher — kamagra gel
https://kamagraprix.com/# Kamagra pharmacie en ligne
Cialis sans ordonnance 24h: Tadalafil 20 mg prix en pharmacie — Acheter Cialis tadalmed.shop
pharmacie en ligne france livraison belgique: Livraison rapide — pharmacie en ligne france livraison belgique pharmafst.com
Acheter Cialis 20 mg pas cher Cialis sans ordonnance 24h Acheter Cialis 20 mg pas cher tadalmed.com
Элегантные шторы для дома за городом
шторы для коттеджа шторы для коттеджа .
1win официальный https://www.1win8006.ru .
http://kamagraprix.com/# Kamagra Commander maintenant
kamagra oral jelly: kamagra 100mg prix — Kamagra Commander maintenant
kamagra 100mg prix: Kamagra pharmacie en ligne — kamagra oral jelly
1wim 1wim .
kamagra gel: Kamagra Commander maintenant — kamagra 100mg prix
http://kamagraprix.com/# acheter kamagra site fiable
Kamagra Commander maintenant: Acheter Kamagra site fiable — Acheter Kamagra site fiable
kamagra pas cher: kamagra en ligne — Kamagra Commander maintenant
pharmacie en ligne france livraison internationale: pharmacie en ligne sans ordonnance — pharmacie en ligne sans ordonnance pharmafst.com
kamagra pas cher: kamagra oral jelly — Kamagra Commander maintenant
Cialis sans ordonnance 24h: Cialis generique prix — Cialis generique prix tadalmed.shop
acheter kamagra site fiable: acheter kamagra site fiable — kamagra oral jelly
lucky jet 1win telegram http://1win8003.ru .
Cialis en ligne: Cialis sans ordonnance 24h — cialis generique tadalmed.shop
выигрышные live ставки на мостбет http://mostbet5021.ru .
pharmacie en ligne avec ordonnance Pharmacies en ligne certifiees pharmacie en ligne fiable pharmafst.shop
Achat mГ©dicament en ligne fiable: Livraison rapide — Pharmacie sans ordonnance pharmafst.com
Achat Cialis en ligne fiable: Acheter Cialis 20 mg pas cher — Cialis generique prix tadalmed.shop
мостбет авиатор мостбет авиатор .
Kamagra Commander maintenant: kamagra en ligne — Acheter Kamagra site fiable
Cialis sans ordonnance 24h: Cialis sans ordonnance pas cher — Pharmacie en ligne Cialis sans ordonnance tadalmed.shop
Kamagra Oral Jelly pas cher: kamagra livraison 24h — Kamagra pharmacie en ligne
kamagra 100mg prix: Kamagra Commander maintenant — Kamagra Commander maintenant
Деревянные горизонтальные жалюзи с электроприводом
Деревянные горизонтальные жалюзи с электроприводом Деревянные горизонтальные жалюзи с электроприводом . прокарниз
Cialis generique prix: Cialis sans ordonnance 24h — Tadalafil sans ordonnance en ligne tadalmed.shop
Энергосберегающие жалюзи с пультом — экономия и комфорт
жалюзи с пультом жалюзи с пультом . Prokarniz
kamagra oral jelly: kamagra pas cher — acheter kamagra site fiable
Tadalafil achat en ligne: Cialis sans ordonnance 24h — cialis generique tadalmed.shop
промокод при регистрации 1win http://1win8007.ru .
Cialis sans ordonnance 24h: Pharmacie en ligne Cialis sans ordonnance — cialis prix tadalmed.shop
Tadalafil 20 mg prix sans ordonnance: cialis generique — Tadalafil sans ordonnance en ligne tadalmed.shop
acheter mГ©dicament en ligne sans ordonnance: Pharmacies en ligne certifiees — pharmacie en ligne france fiable pharmafst.com
vente de mГ©dicament en ligne pharmacie en ligne pharmacie en ligne pas cher pharmafst.shop
kamagra pas cher: Achetez vos kamagra medicaments — Kamagra Commander maintenant
Индивидуальный пошив штор, качественный пошив штор..
Создайте уникальный интерьер с пошивом штор, от профессионалов..
Пошив штор на заказ, с использованием лучших тканей..
Пошив штор по вашему дизайну, закажите онлайн..
Профессиональный пошив штор с монтажом, на любой вкус..
Пошив штор премиум-класса, гарантия качества..
Пошив штор по индивидуальному заказу, Позвольте нам помочь..
Шторы на любой вкус и цвет, от ведущих мастеров..
Пошив штор из эксклюзивных тканей, для элитных интерьеров..
Экспертный пошив штор в кратчайшие сроки, звоните прямо сейчас..
Мастера по пошиву штор, гарантия соответствия..
Премиум пошив штор для интерьера, с бесплатной доставкой..
Индивидуальный стиль ваших окон, от профессионалов..
Уникальные шторы с пошивом на заказ, по вашим требованиям..
Пошив штор для любого помещения, с современными технологиями..
Высокое качество и стиль, с гарантией долговечности..
Пошив штор по вашим пожеланиям, с бесплатной консультацией..
пошив штор пошив штор . Ткацкий
achat kamagra: Acheter Kamagra site fiable — kamagra 100mg prix
mel bet сайт https://melbet1004.ru .
1win.com http://1win5051.ru/ .
Лучшие электроприводы для горизонтальных жалюзи
электропривод для горизонтальных жалюзи электропривод для горизонтальных жалюзи .
kamagra gel kamagra livraison 24h Kamagra Oral Jelly pas cher
Tadalafil sans ordonnance en ligne: Acheter Cialis 20 mg pas cher — Cialis sans ordonnance pas cher tadalmed.shop
Acheter Cialis: Acheter Viagra Cialis sans ordonnance — Tadalafil achat en ligne tadalmed.shop
1win pariuri http://1win5053.ru .
Acheter Cialis: Achat Cialis en ligne fiable — Cialis sans ordonnance pas cher tadalmed.shop
Kamagra Oral Jelly pas cher: kamagra en ligne — Acheter Kamagra site fiable
Cialis sans ordonnance 24h Acheter Cialis 20 mg pas cher Cialis sans ordonnance pas cher tadalmed.com
Acheter Cialis: Achat Cialis en ligne fiable — Achat Cialis en ligne fiable tadalmed.shop
Моторизированные жалюзи: комфортный свет и приватность
моторизированные жалюзи моторизированные жалюзи . +7 (499) 638-25-37
Моторизированные жалюзи — решение для умного дома
моторизированные жалюзи моторизированные жалюзи . прокарниз
mostbet sikachat http://mostbet8006.ru .
Обновите интерьер с деревянными жалюзи с электроприводом
Деревянные горизонтальные жалюзи с электроприводом Деревянные горизонтальные жалюзи с электроприводом . Prokarniz
мостбет скачать бесплатно http://www.mostbet3024.ru .
http://tadalmed.com/# Cialis sans ordonnance 24h
mostbet uz haqida https://www.mostbet3025.ru .
Быстро приобрести диплом о высшем образовании!
Мы оказываем услуги по изготовлению и продаже документов об окончании любых университетов Российской Федерации. Документы изготавливаются на подлинных бланках. pillarhomes.com.au/kupit-diplom-gosudarstvennogo-obrazca-340
металлические пины значки изготовление железных значков
pharmacies en ligne certifiГ©es: pharmacie en ligne — Achat mГ©dicament en ligne fiable pharmafst.com
Achat mГ©dicament en ligne fiable Pharmacie Internationale en ligne п»їpharmacie en ligne france pharmafst.shop
Kamagra Commander maintenant achat kamagra kamagra livraison 24h
1цшт официальный сайт войти https://1win8009.ru .
indian pharmacy MedicineFromIndia indian pharmacy online shopping
Rx Express Mexico: buying prescription drugs in mexico — mexican online pharmacy
https://expressrxcanada.shop/# canadian pharmacy 24 com
Обзоры шторных решений для загородных домов, используя шторы, подбираем шторы для загородного дома, стильный дизайн штор, максимальная функциональность, натуральные ткани для штор, эффективные шторы для загородного дома, стильные решения для штор, как подобрать шторы для спальни в доме за городом, примеры оформления окон с шторами, стильные шторы из льна и холста, удобные системы управления шторами, гармония штор и мебели, декор и оформление окон в загородном доме, сделайте выбор в пользу уютных штор, выбор стильных штор для загородного дома, сравнение видов штор для дачи, используйте шторы для зонирования пространства, идеи сезонного оформления окон
шторы в загородном доме шторы в загородном доме .
mexican online pharmacy: Rx Express Mexico — Rx Express Mexico
canadian pharmacy online Generic drugs from Canada my canadian pharmacy
canadian pharmacy prices: ExpressRxCanada — best rated canadian pharmacy
http://expressrxcanada.com/# northwest pharmacy canada
canada drugstore pharmacy rx: canadian online drugs — prescription drugs canada buy online
indian pharmacy online shopping: indian pharmacy online shopping — MedicineFromIndia
canadian online pharmacy ExpressRxCanada cheap canadian pharmacy
mexico pharmacies prescription drugs: RxExpressMexico — mexican mail order pharmacies
Заказать диплом о высшем образовании можем помочь. Купить диплом техникума, колледжа в Воронеже — diplomybox.com/kupit-diplom-tekhnikuma-kolledzha-v-voronezhe
canadian pharmacy com: Express Rx Canada — reputable canadian pharmacy
Rx Express Mexico: Rx Express Mexico — mexico pharmacy order online
1win скачать с официального сайта https://www.1win8020.ru .
Выбираем шторы для дачи и загородного дома
шторы в загородном доме шторы в загородном доме .Ткацкий
Приветствую!
Для некоторых людей, заказать диплом о высшем образовании — это острая необходимость, шанс получить достойную работу. Впрочем для кого-то — это желание не терять время на учебу в ВУЗе. С какой бы целью вам это не потребовалось, наша фирма готова помочь вам. Быстро, профессионально и выгодно изготовим документ любого года выпуска на подлинных бланках со всеми печатями.
Основная причина, почему многие покупают дипломы, — получить хорошую должность. К примеру, навыки и опыт дают возможность кандидату устроиться на работу, но документального подтверждения квалификации не имеется. В случае если для работодателя важно присутствие «корочки», риск потерять место работы очень высокий.
Заказать документ ВУЗа можно в нашей компании в Москве. Мы оказываем услуги по продаже документов об окончании любых ВУЗов России. Вы сможете получить диплом по любым специальностям, любого года выпуска, в том числе документы старого образца. Даем 100% гарантию, что при проверке документов работодателем, никаких подозрений не появится.
Ситуаций, которые вынуждают приобрести диплом о среднем образовании много. Кому-то прямо сейчас требуется работа, а значит, необходимо произвести впечатление на начальство при собеседовании. Некоторые задумали устроиться в серьезную компанию, чтобы повысить свой статус в обществе и в будущем начать свое дело. Чтобы не терять множество времени, а сразу начинать удачную карьеру, применяя врожденные таланты и приобретенные знания, можно заказать диплом в интернете. Вы станете полезным в обществе, обретете финансовую стабильность быстро и просто- аттестат купить за 9 класс
canadian pharmacy scam: Generic drugs from Canada — canadian pharmacy meds reviews
canadian pharmacies: Express Rx Canada — canadapharmacyonline com
Инструкции по уходу за шторами в загородном доме
шторы в загородном доме шторы в загородном доме .Ткацкий
Заказать диплом ВУЗа !
Приобретение диплома ВУЗа России у нас является надежным делом, так как документ заносится в государственный реестр. Выгодно купить диплом об образовании rusd-diplomj.ru/kuplyu-diplom-s-provodkoj-v-vuze-2
регистрация в 1цшт 1win8010.ru .
как ввести промокод в 1win после регистрации http://1win8019.ru/ .
как зарегистрироваться в 1win как зарегистрироваться в 1win .
indian pharmacy online shopping: indian pharmacy online shopping — Medicine From India
canadian pharmacy world: Generic drugs from Canada — canadian pharmacies that deliver to the us
Другой глаз остался закрытым. недорого накрутка поведенческих факторов программа Тот вспыхнул от негодования.
MedicineFromIndia: Medicine From India — indian pharmacy online shopping
Закажите уникальные шторы на заказ, лучшие цены.
Премиальные шторы на заказ, быстро.
Пошив штор по индивидуальному дизайну, под ваш интерьер.
Шторы на заказ с доставкой, по индивидуальному дизайну.
Идеальные шторы на заказ для гостиной, с учетом модных трендов.
Индивидуальный дизайн штор, под любой бюджет.
Пошив штор для нестандартных окон, по желанию.
Эксклюзивные шторы на заказ, от профессионалов.
Современные шторы на заказ, по вашему проекту.
Шторы на заказ с учетом ваших пожеланий, по вашему стилю.
Креативные шторы на заказ, под любой интерьер.
Доступные цены на шторы на заказ, с доставкой по Москве и регионам.
Элегантные шторы на заказ, под ваш бюджет.
Индивидуальный пошив штор на заказ, по вашему проекту.
Пошив штор по индивидуальному дизайну, под ваш вкус.
Высококачественные шторы на заказ, с гарантией долговечности.
сшить шторы на заказ сшить шторы на заказ . Prokarniz
промокод мостбет http://ugilas.com.kg .
Rx Express Mexico: mexican rx online — buying prescription drugs in mexico online
Rx Express Mexico: mexico pharmacy order online — RxExpressMexico
Сшить шторы на заказ по индивидуальному проекту, для офиса.
Идеальные шторы по вашим размерам, с гарантией качества.
Создание штор мечты, по вашим размерам.
Эксклюзивные шторы на заказ, высокое качество материалов.
Заказать шторы на заказ для спальни, с индивидуальным подходом.
Надежное изготовление штор на заказ, быстро и качественно.
Создание штор на заказ из натуральных тканей, по желанию.
Эксклюзивные шторы на заказ, от профессионалов.
Современные шторы на заказ, по вашему проекту.
Шторы на заказ с учетом ваших пожеланий, от ведущих мастеров.
Премиальные ткани для штор на заказ, воплощая ваши идеи.
Доступные цены на шторы на заказ, с высоким качеством.
Модные шторы на заказ для вашего дома, под любой стиль интерьера.
Индивидуальный пошив штор на заказ, с использованием лучших тканей.
Создание уникальных штор для любой комнаты, по мере необходимости.
Высококачественные шторы на заказ, под любой стиль.
сшить шторы на заказ сшить шторы на заказ . Prokarniz
pet meds without vet prescription canada Express Rx Canada thecanadianpharmacy
http://pinupaz.top/# pin-up
авиатор 1вин авиатор 1вин .
Далеко, далеко от Грибоедова, в громадном зале, освещенном тысячесвечовыми лампами, на трех цинковых столах лежало то, что еще недавно было Михаилом Александровичем. создание сайта цена Плохо то, что он иногда внезапно смертен, вот в чем фокус! И вообще не может сказать, что он будет делать в сегодняшний вечер.
пин ап казино: пин ап казино — пин ап казино
вин 1 https://www.1win10018.ru .
– Правда? – Правда. Окна и двери – Вы… вы сколько времени в Москве? – дрогнувшим голосом спросил он.
продажа аккаунтов заработок на аккаунтах
вавада казино: вавада зеркало — vavada casino
пин ап зеркало: пин ап казино — пин ап казино официальный сайт
1win bet aviator 1win bet aviator .
vavada casino: вавада зеркало — вавада официальный сайт
как перейти на бонусный счет в 1win https://www.1win10002.ru .
Элегантные жалюзи с пультом для вашего дизайнерского решения
жалюзи с пультом жалюзи с пультом . +7 (499) 638-25-37
https://pinupaz.top/# pin-up
http://vavadavhod.tech/# vavada вход
pin up casino: pin-up — pinup az
прогнозы лаки джет http://www.1win10020.ru .
пин ап зеркало: пин ап зеркало — пинап казино
pin up az: pin up az — pin up casino
¡Hola seguidores del casino !
ObtГ©n giros gratis sin depГіsito EspaГ±a para tragamonedas populares. Solo crea tu cuenta y disfruta al instante. ВЎNada que perder!
CГіdigos actualizados tiradas gratis casino EspaГ±a — https://100girosgratissindepositoespana.guru/.
¡Que tengas magníficas resultados asombrosos !
pin up azerbaycan: pin up az — pin up casino
1win online casino http://1win1016.top/ .
вавада казино: вавада казино — вавада зеркало
Первыми заволновались лихачи, дежурившие у ворот грибоедовского дома. нотариус Китай-город – Доктор, – шепотом спросил потрясенный Рюхин, – он, значит, действительно болен? – О да, – ответил врач.
pin-up: pin up casino — pin-up
Очертил Бездомный главное действующее лицо своей поэмы, то есть Иисуса, очень черными красками, и тем не менее всю поэму приходилось, по мнению редактора, писать заново. нотариус метро Сокол Машину.
продажа аккаунтов купить аккаунт
http://pinuprus.pro/# пин ап вход
маркетплейс аккаунтов соцсетей аккаунт для рекламы
pinup az pin up casino pin-up casino giris
Нет, я категорически против «Колизея», – гремел на весь бульвар гастроном Амвросий. Балансиры подвески – Тесно мне, – вымолвил Пилат, – тесно мне! Он холодною влажной рукой рванул пряжку с ворота плаща, и та упала на песок.
пин ап казино официальный сайт: pin up вход — пин ап казино официальный сайт
http://pinuprus.pro/# пин ап казино официальный сайт
pinup az pinup az pin up az
pinup az pinup az pinup az
Функциональные шторы для загородных коттеджей
шторы для коттеджа шторы для коттеджа .
1 вин. https://1win10004.ru .
http://pinuprus.pro/# пин ап зеркало
купить аккаунт маркетплейс аккаунтов соцсетей
маркетплейс аккаунтов соцсетей маркетплейс аккаунтов
Заказать диплом можно используя сайт компании. automotive.copiny.com/question/details/id/1084532
вавада: вавада казино — вавада казино
Сшить шторы на заказ легко и быстро
сшить шторы на заказ сшить шторы на заказ . «Ткацкий»
пинап казино: пин ап казино — pin up вход
pin up: pin up — pin up
мосбет http://mostbet10009.ru .
pin up вход пин ап казино пин ап казино официальный сайт
пин ап зеркало: пин ап казино — pin up вход
Уникальные шторы, созданные по вашему желанию
сшить шторы на заказ сшить шторы на заказ . Ткацкий
пин ап казино официальный сайт: пинап казино — пинап казино
пин ап казино: пинап казино — пин ап вход
vavada casino: vavada casino — vavada вход
Закажите уникальные шторы на заказ по лучшим ценам
шторы на заказ шторы на заказ . +7 (499) 460-69-87
пин ап казино официальный сайт: pin up вход — пинап казино
Buy Account Account Exchange Service
Account trading platform Secure Account Purchasing Platform
пин ап казино официальный сайт: пин ап казино официальный сайт — пин ап вход
pin up вход: пинап казино — pin up вход
скачать 1win официальный сайт бесплатно http://1win10027.ru .
Создайте уникальный стиль с римскими шторами на заказ
римские шторы на заказ римские шторы на заказ .
пинап казино: пин ап казино — пин ап казино
Стильные римские шторы для вашей квартиры
римские шторы на заказ римские шторы на заказ .
https://pinuprus.pro/# пин ап зеркало
Пошив штор на заказ
пошив штор на заказ пошив штор на заказ .