Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР.

Ответ
Опции темы

Вопрос по условиям в WinAVR

Непрочитано 19.01.2007, 08:32   #1
All_XXX
Частый гость
 
Регистрация: 03.01.2007
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
All_XXX на пути к лучшему
По умолчанию Вопрос по условиям в WinAVR

Не могу понять где собака зарыта!
Задача состоит в седеющем:
•При температуре внутри бокса от 10°C до 33°C ничто не работает
•При достижении температуры 33°C включается циркуляционный вентилятор (FAN1)
•При достижении температуры 35°C дополнительно включается вытяжной вентилятор (FAN2)
•При достижении температуры 40°C дополнительно включается приточный вентилятор (FAN3)
•При охлаждении до 30°C все вентиляторы выключаются
•При понижении температуры до 10°C включается циркуляционный вентилятор (FAN1)
•При понижении температуры до 8°C дополнительно включается обогреватель (HEATER)
•При нагреве до 12°C все выключается
Код :
Код:
for(;;)

if (err) errors();
	convert_temp();
	delay_ms(800);
	celcius=read_temp()››1;// определяется температура
	itoa( celcius, buffer, 10);
	uart_puts_P("
");
	uart_puts(buffer);
	uart_puts_P("
");
	if (celcius ›= 12) { uart_puts_P("›12 OK
");
		if (celcius ‹=30) {uart_puts_P("‹30 OK
");
			if (PINB&0b00000001) {// все выключается
			uart_puts_P("FAN OK
");
			PORTB=0b00000000;
			continue;
			}
		continue;
		}	
	}
	if (celcius›=33){uart_puts_P("›33 OK
");
	FAN1;
		if (celcius›=35){uart_puts_P("›35 OK
");
		FAN2;
			if (celcius›=40){uart_puts_P("›40 OK
");
			FAN3;
			}
		}
	continue;
	}
	else if (celcius‹=10){uart_puts_P("‹10 OK
");
	FAN1;
		if (celcius‹=8){uart_puts_P("‹8 OK
");
		HEATER;
		}
	}
}
Но моя программа почему-то при celcius=35 обрабатывает условие
celcius›=40 и считает его TRUE???
При celcius‹8 условие celcius‹=8 не обрабатывается???
Я только начинаю разбираться с микроконтроллерами и немому понять, почему моя программа не выдает нужного результата
All_XXX вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 12:18   #2
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

я бы посоветовал использовать VMLAB и пошагать по проге и посмотреть что и как.

==============
OFF: вот книга по WinAVR для начинающих.
slil.ru/23767326 пароль 1
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 12:28   #3
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

задайте в проге перед IF явно:

celcius = 35;

она должна быть беззнаковой символьной пожалуй.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 12:36   #4
All_XXX
Частый гость
 
Регистрация: 03.01.2007
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
All_XXX на пути к лучшему
По умолчанию

Все разобрался все дело было в разных типах данных
All_XXX вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 12:45   #5
All_XXX
Частый гость
 
Регистрация: 03.01.2007
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
All_XXX на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
я бы посоветовал использовать VMLAB и пошагать по проге и посмотреть что и как.

==============
OFF: вот книга по WinAVR для начинающих.
slil.ru/23767326 пароль 1
я пользуюсь Proteus 6 Professional в нем попроще!
кстати начинал именно с вашего сайта отличный сайт только не смог организовать связь с датчиком по 1wire в CodeVisionAVR поэтому перешел на WinAVR

да решение было простым:
celcius=read_temp()››1;
заминил на
celcius=(char)(read_temp()››1);
и все OK
All_XXX вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 16:22   #6
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от All_XXX
Сообщение от avr123-nm-ru
я бы посоветовал использовать VMLAB и пошагать по проге и посмотреть что и как.

==============
OFF: вот книга по WinAVR для начинающих.
slil.ru/23767326 пароль 1
не смог организовать связь с датчиком по 1wire в CodeVisionAVR поэтому перешел на WinAVR
Хм... а в PROTEUSe пример "one-wire" именно в CVAVR сделан и работает целая сеть 1-wire приборов.

proteus123.narod.ru/01.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума   Ответить с цитированием
Непрочитано 19.01.2007, 17:16   #7
All_XXX
Частый гость
 
Регистрация: 03.01.2007
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
All_XXX на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Сообщение от All_XXX
Сообщение от avr123-nm-ru
я бы посоветовал использовать VMLAB и пошагать по проге и посмотреть что и как.

==============
OFF: вот книга по WinAVR для начинающих.
slil.ru/23767326 пароль 1
не смог организовать связь с датчиком по 1wire в CodeVisionAVR поэтому перешел на WinAVR
Хм... а в PROTEUSe пример "one-wire" именно в CVAVR сделан и работает целая сеть 1-wire приборов.

proteus123.narod.ru/01.htm
да я муччил этот пример но так и не добилься нужного результата вернее ваще связи после компиляции все успешно умирает!!! даже если нечего не менять
All_XXX вне форума   Ответить с цитированием
Непрочитано 22.01.2007, 07:18   #8
All_XXX
Частый гость
 
Регистрация: 03.01.2007
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
All_XXX на пути к лучшему
По умолчанию

Теперь другая проблема не правильно отображает отрицательную температуру!
-8 пишет как 248 подскажите как правильно сделать???
Хот для моих целей и не нужны отрицательные температуры но чтобы не было ошибок!!!
All_XXX вне форума   Ответить с цитированием
Непрочитано 24.01.2007, 15:27   #9
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
я бы посоветовал использовать VMLAB и пошагать по проге и посмотреть что и как.

==============
OFF: вот книга по WinAVR для начинающих.
slil.ru/23767326 пароль 1
Спасибо, а по IAR такого нет? А то его только все нахваливают а инфы никакой...
moyaproba вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на Си в WinAVR zelen536 Микроконтроллеры, АЦП, память и т.д 36 28.02.2011 19:46
WinAVR и asm Dungeon Микроконтроллеры, АЦП, память и т.д 0 12.06.2007 10:55
uart WINAVR chipic128 Микроконтроллеры, АЦП, память и т.д 2 13.04.2007 15:10
UART и WinAVR SpiderHall Микроконтроллеры, АЦП, память и т.д 1 30.10.2006 20:53
WinAVR if=sbic koko202 Proteus, KiCAD и другие ECAD 9 26.09.2006 06:00


Часовой пояс GMT +4, время: 07:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.