1-wire -> ПК реализация

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

Блин, да он в ATtyni13 залезет :)
962 байта с UART, после праздников куплю тиньку 13-ую, сделаю климат контроль в машину :)))
А потом продолжу чухать 1-wire, столько еще сделать надо... Один поиск как страшен в описании :kill:
Мастер Ломастер, низкий поклон тебе товарищ! От жины в первую очередь, а то она уже заскучала, а то я такой, если у меня что не получается, всю жизнь на это потрачу но разберусь :)))
А так всегда одна запятая погоду портит, в этом случае две стрелочки :)))
Реклама
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

Может кому пригодится оставлю конечный вариант.

Пример как работать с устройствами 1-wire через МК ATtiny/ATMega в WinAVR/avr-gcc
Все функции низкого уровня реализованы, осталось отправлять команды и получать ответы, считай API.

Только если кто будет пробовать обратите внимание что хоть температура и циклически выводится, преобразование происходит один раз при запуске! Как циклическое преобразование включить(какой командой) еще не искал
Вложения
ATtiny2313.zip
Исходники
(5.76 КБ) 148 скачиваний
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: 1-wire -> ПК реализация

Сообщение Мастер Ломастер »

хочу вас предостеречь об одном, на что вы обязательно нопоретесь, если продолжите и далее писать программы в том же стиле, что сейчас.

файлы, подключаемые директивой #include, не должны содержать исходников (т.е. переменных, функций и т.п.) - это ЗАГОЛОВОЧНЫЕ файлы, в них должны присутствовать ТОЛЬКО ОПИСАНИЯ функций, переменных (если надо), типов, констант и т.п. а сами функции и переменные должны находиться в файлах с расширениес .c, которые должны компилироваться, т.е. подключаться к проекту именно как исходные тексты.

у вас же сейчас все не так - это неправильно.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

Мастер Ломастер писал(а):хочу вас предостеречь об одном, на что вы обязательно нопоретесь, если продолжите и далее писать программы в том же стиле, что сейчас.

файлы, подключаемые директивой #include, не должны содержать исходников (т.е. переменных, функций и т.п.) - это ЗАГОЛОВОЧНЫЕ файлы, в них должны присутствовать ТОЛЬКО ОПИСАНИЯ функций, переменных (если надо), типов, констант и т.п. а сами функции и переменные должны находиться в файлах с расширениес .c, которые должны компилироваться, т.е. подключаться к проекту именно как исходные тексты.

у вас же сейчас все не так - это неправильно.
Мастер Ломастер, я знаю, может сразу подскажете как в Makefile подключить этот самый .c? :)
Си для меня очень в новинку, а с каждым вашим советом я становлюсь мудрее 8)
Реклама
Эиком - электронные компоненты и радиодетали
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: 1-wire -> ПК реализация

Сообщение Мастер Ломастер »

добавьте его к списку исходников, вот и все. можно воспользоваться генератором makefile, который в комплекте с WinAVR идет. а можно сразу в студии в окошке проекта добавить - тогда и makefile не придется самому делать.
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

Мастер Ломастер писал(а):добавьте его к списку исходников, вот и все. можно воспользоваться генератором makefile, который в комплекте с WinAVR идет. а можно сразу в студии в окошке проекта добавить - тогда и makefile не придется самому делать.
Эм, я из под линукса, код пишу в аналоге вашего блокнота, а компилирую avg-gcc, IDE нема :))
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: 1-wire -> ПК реализация

Сообщение Мастер Ломастер »

на сколько я в курсе, студия отлично запускается из-под wine
а для совсем принципиальных есть Eclipse - это ваще песня, только симулятора нету (хотя вроде как для линуха есть avrsim и другое)
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: 1-wire -> ПК реализация

Сообщение md5sum »

danger3466 писал(а):Эм, я из под линукса, код пишу в аналоге вашего блокнота, а компилирую avg-gcc, IDE нема :))
Тогда выкладывай Makefile :))
— Не говорите мне что делать и я не скажу куда Вам идти...
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

md5sum, чуть выше исходники, там и Makefile

Мастер Ломастер, интересно что за зверь avrsim, на днях поищу... Я просто не привычен к IDE, я часто скрипты пишу просто в gedit(считай блокнот), вот и привычка выробаталась :)
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: 1-wire -> ПК реализация

Сообщение Мастер Ломастер »

danger3466 писал(а):Мастер Ломастер, интересно что за зверь avrsim, на днях поищу...
как по мне - так лабода какая-то... для линуха и simavr, и avrsim и avrsimul кажется есть - но все это с моей точки зрения и рядом не стоит со студией... а по поводу IDE - одно дело скрипт в консольке накидать для чего-то быстрого, другое дело часами над программой работать. IDE в этом случае сильно помогает. попробуйте Eclipse :)
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: 1-wire -> ПК реализация

Сообщение ploop »

Я просто не привычен к IDE, я часто скрипты пишу просто в gedit(считай блокнот), вот и привычка выробаталась :)
Для начала на Geany перебирайтесь. Такой же лёгкий, но удобнее Gedit'а.
Ща проект на асме в нём делаю, а он асм не любит, даже подсветки синтаксиса толковой нет. Ничего, уже за 1700 строк перевалил. Зато компилить и прошивать одной кнопкой.
А для Си самое то.
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: 1-wire -> ПК реализация

Сообщение md5sum »

danger3466 писал(а):может сразу подскажете как в Makefile подключить этот самый .c? :)
Си для меня очень в новинку, а с каждым вашим советом я становлюсь мудрее 8)
Во второй строке:

Код: Выделить всё

OBJ            = main.o
Добавляешь дальше (через пробел) список обьектных файлов, необходимых для сборки проекта, c расширением "о"

Код: Выделить всё

OBJ            = main.o module1.o modute2.o
команда маке сама будет искать файлы module1.c и module2.c.
Для этого добавь строку после main.o: main.c

Код: Выделить всё

.c.o:
            $(CC) $(CFLAGS) $(LDFLAGS) -c $^ $(LIBS)
PS описание правил начинаются с табуляции, пробелы не ставить.
— Не говорите мне что делать и я не скажу куда Вам идти...
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

ploop писал(а):
Я просто не привычен к IDE, я часто скрипты пишу просто в gedit(считай блокнот), вот и привычка выробаталась :)
Для начала на Geany перебирайтесь. Такой же лёгкий, но удобнее Gedit'а.
Ща проект на асме в нём делаю, а он асм не любит, даже подсветки синтаксиса толковой нет. Ничего, уже за 1700 строк перевалил. Зато компилить и прошивать одной кнопкой.
А для Си самое то.
gedit тоже умеет компилить , и подсветка есть, но asm тоже не знает :))

md5sum, спасибо буду перекидывать как положено подправлю
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

Может кому пригодится пример с циклическим преобразование температуры

Код: Выделить всё

	if(OWI_Reset()) {				// Ресет для проверки есть ли ведомое устройство на линии
		OWI_Send_byte(0xAC);				// Команда чтения конфига (1SHOT в том числе)
		status = OWI_Read_byte();			// 1SHOT = 0;
		status &= ~_BV(7);
		OWI_Reset();					// Сброс перед новой командой
		OWI_Send_byte(0x0C);				// Команда записать конфиг (1SHOT в том числе)
		OWI_Send_byte(status);				// Команда записи конфига (1SHOT в том числе)
		OWI_Reset();					// Сброс перед новой командой
		OWI_Send_byte(0xEE);				// Команда начать преобразование температуры
		unsigned char i;
		for(i=0;i<8;i++) _delay_ms(100);		// Дадим 800ms на преобразование
		while(1) {
			OWI_Reset();				// Сброс перед новой командой
			OWI_Send_byte(0xAA);			// Запрос температуры
			_delay_us(5);
			print_byte(OWI_Read_byte());		// Выводим байт
		}
	}
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: 1-wire -> ПК реализация

Сообщение ploop »

А если несколько датчиков?
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: 1-wire -> ПК реализация

Сообщение md5sum »

danger3466 писал(а):

Код: Выделить всё

		for(i=0;i<8;i++) _delay_ms(100);		// Дадим 800ms на преобразование
Это место особенно радует: в 90% проектов с далласовскими термометрами гробим 800 мсек :)) :kill:
— Не говорите мне что делать и я не скажу куда Вам идти...
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: 1-wire -> ПК реализация

Сообщение Мастер Ломастер »

md5sum писал(а):
danger3466 писал(а):

Код: Выделить всё

		for(i=0;i<8;i++) _delay_ms(100);		// Дадим 800ms на преобразование
Это место особенно радует: в 90% проектов с далласовскими термометрами гробим 800 мсек :)) :kill:
в 90% проектов все равно больше делать нечего :)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

ploop писал(а):А если несколько датчиков?
Пока в наличии только ds1821, а он не умеет работать в паре и более
Нет у него команд SEARCH ROM, READ ROM и т.д.
Придет ds18b20 будет поиск :)
vano11
Вымогатель припоя
Сообщения: 653
Зарегистрирован: Вс дек 20, 2009 09:44:51
Откуда: 016RU

Re: 1-wire -> ПК реализация

Сообщение vano11 »

Уважаемый danger3466 Может стоит поправить название темы "1-wire -> ПК реализация" в "1-wire -> МК реализация"? А то я все захожу, жду когда ПК реализация начнется :)) .
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: 1-wire -> ПК реализация

Сообщение danger3466 »

vano11 писал(а):Уважаемый danger3466 Может стоит поправить название темы "1-wire -> ПК реализация" в "1-wire -> МК реализация"? А то я все захожу, жду когда ПК реализация начнется :)) .
Пока нет возможности реализовать все функции, имеющийся ds1821 ущербный, в нем нет SEARCH ROM, READ ROM и т.д., как придет датчик, закончу
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»