termostat: Все сообщения за 14 Марта 2004 года

 
ПнВтСрЧтПтСбВс
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

termostat

аксакал


как округлить до целого дробное число?
 


Я точно не знаю, но можно попробовать:
1) привести к целому типу.

например float chislo = 34.5436 - дробное

zeloe = (unsignes char) chislo; - по идее должна остаться только целая часть.


2) поделить целочисленно на 1 - целочисленное
деление (если можно его над плавающей точкой делть)
знак "%" наверно вместо "/"

3) возможно в Си есть спец. операция


проверить состояние только первого бита порта А

... ко входу РА1 прицеплена кнопка
 


PA1 это 2-й бит!!! порта, первый бит это: PA0


включает и выключает светоодиод
 


Надо "антидребезг" предусмотреть: Обычно после обнаружения нажатия кнопки,
делают паузу 20 мс и еще раз проверяют, что кнопка нажата.


PORTB=0xff; //portB = 1
 


НЕТ! portB = 225 теперь.

termostat

аксакал

[дмитрий:],13.03.2004 21:52:16
ICC но не получилось, хоть хекс он создает и правильный(если верить его сообщениям), но VMLab эмулировать его отказывается
 


странно... Я использовал ICC, как и многие другие, успешно.

и задача в курсе МК есть на нем скомпилированая.

Попробуй такой пример: - кстати кому интересно, разберитесь сколько циклов сделает FOR в этом примере?

\\\\\

#include <io8535v.h>

void main() {
unsigned char a, b;

DDRB = 255;

for (a = 1; a; a++){

for (b = 1; b; b++)
PORTB++;

}
}

потом светодиоды подключить к Порт В и посмотреть работу в VMLAB

\\\\\\\\\\\\\\\

Я проверил в ICC все скомпилировал и в VMLAB проверил - нужно только опции проекта в ICC заполнить - тип процессора
test.zip (скачать) [2,1 кБ]
 
 
Это сообщение редактировалось 15.03.2004 в 10:18

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru