-
Постов
1 641 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные IIIytNIK
-
-
aqc, bulat
Сорта г*вна. Без обид.
0 -
Я имею ввиду грязь на листе
1 -
Принтер серит. Пропылесосить не мешало бы.
1 -
smd5050 это типоразмер. Естественно данные у разных производителей светодиодов будут разные.
2 -
Настраивается там все ровно 30 секунд:
На компьютере, после установки и запуска программы ничего не трогаем, задаем только пароль для подключения. Порт оставляем стандартный 5900:
Пароль задаем либо сразу после установки, либо в Primary password: Change...
На планшете:
Там где VNC сервер пишем ip адрес компьютера, а там где VNC пароль - тот пароль, который указали на компьютере:
Жмем подключиться и получаем:
0 -
Ну да. Либо городить Ноутбук-Шлейф-Адаптер-Переходник "папа-папа"-Жесткий диск, и к диску еще внешнее питание.
0 -
Проверяйте, если не запустится, тогда подпаяйте к крайним выводам питания (с противоположной стороны от ключа) провод по которому будете подавать +12. Либо, опять же, не городить, а купить переходник папа-папа.
Но лучше, конечно, найти 2,5" sata диск, тем более они сейчас стоят копейки.
0 -
Правильно. БП возможно потребуется внешний, нужно проверять на конкретном жестком диске.
0 -
Транзистор s8050. Заменить можно 2s8050, 2n8050, 2sс8050.
Вопрос только сгорело ли что-нибудь еще...
UPD: Меня больше всего контакты из пуговиц от курток удивляют Придумают же...
0 -
Все зависит от схемы вашей локальной сети.
0 -
Напряжение +5V есть в разъеме 2,5" IDE. +12V в 2,5" дисках не используется.
сделать к нему маленькую плату с разьёма папа на разьем папа, чтобы можно было подключить обычный sata проводМожно не городить, а купить вот такой шлейф
0 -
Такой адаптер не подойдет. Это адаптер для подключения ноутбучных(2,5") IDE жестких дисков через интерфейс SATA. Вам же нужен адаптер для подключения SATA жестких дисков через 2,5" IDE. Типа такого:
Проблема будет только с размещением диска внутри ноутбука - места для жесткого диска с адаптером там не хватит.
Как вариант можете поискать на местных барахолках 2,5" IDE жесткие диски
0 -
Постоянно рулю рабочим столом компьютера с планшета. На компьютере Windows Server 2008 и GNU/Linux Debian 6, на планшете (Nexus 7 2013) Android 4.4.2.
В качестве серверной части на компьютере используется программа TightVNC. Программа кроссплатформенная, есть версии и для Windows и для Linux.
В качестве клиентской части на планшете используется программа bVNC.
0 -
Если для PORTC будут другие значения, то нужно будет объявлять еще одну переменную. Например uint8_t portcdata EEMEM; . И потом в процессе записи и чтения обращаться уже по этому адресу
eeprom_write_byte(&portcdata, PORTС);
0 -
Вместо eeprom_write_word (&eedata, PORTD); напишите eeprom_write_byte(&eedata, PORTD);
Вызвать функцию сохранения вы не сможете.В конце каждого цикла стоит break;
0 -
Все начинается сверху
#include <avr/eeprom.h>
Подключаем библиотеку для работы с EEPROM. EEPROM это энергонезависимая память микроконтроллера. У Atmega8 её объем составляет 512 байт. Немного, но в целом хватает.
uint8_t eedata EEMEM;
Объявляем глобальную переменную eedata размером 1 байт в eeprom. Грубо говоря, отмечаем кусок памяти eeprom размером 1 байт и даем ему название eedata. Теперь к этому куску памяти мы можем обращаться по имени eedata.
eeprom_write_word (&eedata, PORTD);
Записываем в eeprom по адресу eedata значение из переменной PORTD. Я правда немного неправильно написал, вместо eeprom_write_word нужно использовать eeprom_write_byte
PORTD = eeprom_read_byte(&eedata);
Присваиваем переменной PORTD значение хранящееся в eeprom по адресу eedata.
0 -
Согласен, хотя у ТС ничего такого чтобы вызвало прерывания нет. Но для подстраховки не помешает.
0 -
В чем пишите? Avr studio?
Попробуйте так:
#define F_CPU 1000000UL #include <avr/io.h> //библиотека общая для всех Atmel #include <avr/iom8.h> //опсиание объявлений для Atmega8 #include <util/delay.h> #include <avr/eeprom.h> uint8_t eedata EEMEM; int main(void) //начало главной функции { DDRD = 0xFF; //открываем порт "D" как вывод DDRB = 0x00; //Открываем порт "B" как ввод DDRC = 0x00; //Открываем порт "A" как ввод while (1) { // БЛОК PLUS 1 if(PINB == 0b11111110) { while (1) { if(PINB == 0b11111111) { if(PORTD == 0xFF) { PORTD = 0xFF; } else { PORTD = PORTD+1; } break; } } } //БЛОК MINUS 1 if(PINB == 0b11111101) { while (1) { if(PINB == 0b11111111) { if(PORTD == 0x00) { PORTD = 0x00; } else { PORTD = PORTD-1; } break; } } } //БЛОК LOAD*SAVE*RESET //БЛОК SAVE if(PINB == 0b01111111) { while (1) { if(PINB == 0b11111111) { eeprom_write_word (&eedata, PORTD); break; } } } //БЛОК LOAD if(PINB == 0b10111111) { while (1) { if(PINB == 0b11111111) { PORTD = eeprom_read_byte(&eedata); break; } } } //БЛОК RESET if(PINB == 0b11011111) { while (1) { if(PINB == 0b11111111) { //Обнуление переменной PORTD PORTD = 0; break; } } } } } // скобочка
0 -
Это не программатор, а отладочная плата. Служит для разработки устройств с применением микроконтроллеров XMOS. Что можно сделать - все что угодно, в меру технических возможностей платы и собственных навыков.
Описание архитектуры и примеры работ есть на оф.сайте
0 -
:crazy:
0 -
Тип данных у меня int . ваш вариант увеличит температуру в 10раз.
Нет. Чтобы перевести float в int нужно умножить значение переменной на 10^x, где x - количество требуемых знаков после запятой. Функция ds18b20_temperature возвращает значение типа float. Переменная temp0 типа int. В вашем случае при операции присваивания temp0=ds18b20_temperature(&rom_code[0][0]); переменной temp0 будет присвоена ТОЛЬКО целая часть. Например если ds18b20_temperature возвращает 12.34, то переменной temp0 присвоится только 12.
Поэтому, чтобы получить хотя бы один знак после запятой, нужно умножить значение температуры на десять, и только после этого выполнить операцию присваивания. Т.е. temp0=ds18b20_temperature(0)*10. ds18b20_temperature*10 = 123.4, а переменной temp0 присвоится 123.
А в дальнейшем, при выводе на дисплей, в качестве целой части выводим temp0/10. Так как temp0 у нас int, то temp0/10=12. И в качестве дробной выводим остаток от деления на 10 temp0%10.
А проблема в том, что нету десятых градусов. Проблема именно в датчике!Не может быть такой проблемы у датчика. Почему - читайте даташит и смотрите в каком виде датчик передает температуру. Если бы проблема была в датчике он бы выдавали либо нули, либо околесицу.
0 -
Первые два правильные, в чем проблема-то? Инициализацию вообще можно не делать, по умолчанию ds18b20 работает в 12 битном режиме.
temp0 какой тип данных имеет? В библиотеке ds18b20.lib функция ds18b20_temperature возвращает значение типа float.
Попробуйте вот так:
temp0=ds18b20_temperature(0)*10; if (temp0>1000) { temp0=40960-temp0; temp0=-temp0; } // else temp0*=10; sprintf(buffer, "Td=%d.%d\xdfC",temp0/10, temp0%10); // колл. этапов lcd_clear(); lcd_gotoxy(0,1); lcd_puts(buffer); delay_ms(1500); }
Будет работать, но будет проблема с отрицательными числами
Поэтому лучше делать как надо и использовать float:
float temp0; ------------------------------------------ temp0=ds18b20_temperature(0); if (temp0>1000) { temp0=4096.0-temp0; temp0=-temp0; } // else temp0*=10; sprintf(buffer, "Td=%.1f\xdfC",temp0); // колл. этапов lcd_clear(); lcd_gotoxy(0,1); lcd_puts(buffer); delay_ms(1500);
0 -
тогда нам нужно как-то на Raspberry мерять входное напряжение.
Подключаем к Raspberry любой I2C/SPI АЦП и меряем (MCP3008 например). Примеров в сети предостаточно.
0 -
Проблема С Ml-1520P. Белые Крупинки Не Отпечатанные Тонером.
в Компьютерная техника
Опубликовано
А тут и спорить нечего - только Static Control, только хардкор. За 2 года работы админом провел эксперименты со всеми известными марками тонера. Булат убивает барабан за 3 заправки, максимум 4 проживал. AQC в отработку весь идет.
Сумсунг и ксерокс одно и тоже посути. Как НР и Кэнон.