15.03.2009, 23:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Сообщение от yuriji
|
Ну если это не порт и не аэропорт и не нужно особой точности то в принципе можно и таблицу, я тоже думал в эту строну. 365/10=36,5* 32=1168 таблицу посчитать на 365, а затем разбить на 10 то есть изменение раз в 10 дней. Такой таблицы для уличного освещения в полнее достаточно, к стати промышленные реле многие так и сделаны. Однако ваш метод и точнее и лучше, теперь я за ваш метод.
|
Сначала точность не нужна, а теперь так увлеклись и секунды отлавливаете. Шучу!!! Спасибо.
|
|
|
|
15.03.2009, 23:03
|
|
Прописка
Регистрация: 25.05.2005
Сообщений: 134
Сказал спасибо: 11
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
|
И все-таки проверять наличие дисплея надо! Неинициализированный он ничерта не покажет.Проверить бит готовности, инициализировать, и только после этого писать в него.
|
|
|
|
16.03.2009, 06:09
|
|
Прописка
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от IOPA4
|
Сообщение от yuriji
|
Спасибо Михалыч, завтра попробую на железе. А что если сделать поправку раз в сутки или раз в час, в смысле добавить еще одну менюшку типа «cor + / -), может попробйте.
|
А из-за чего не хочешь мой вариант настроек таймеров - уже больше суток секунда в секунду.
|
Михалыч, фьюсы сфотографируйте, так сказать для полноты картины
Прикрепленный файл: 2389067.rar
|
|
|
|
16.03.2009, 14:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Вопрос такой, как в переменой сбросить биты по их номерам. Например в TCNT0 сбросить CS02 CS01 CS00.
temp=TCNT0;
temp = temp & (0‹‹CS02 & 0‹‹CS01 & 0‹‹CS00);
//получаем 0x00
temp = 0xff;
temp &= 0‹‹1;
//получаем 0x00, а нужно получить 0xfe
//установка битов работает.
temp = (1‹‹CS02 | 1‹‹CS01 | 1‹‹CS00);
//такая конструкция работает. получаем 0x07
где туплю?
|
|
|
|
16.03.2009, 14:22
|
|
Прохожий
Регистрация: 12.11.2008
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
temp = temp & ~(1‹‹CS02 & 1‹‹CS01 & 1‹‹CS00);
|
|
|
|
16.03.2009, 14:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Сообщение от yuriji
|
Михалыч, фьюсы сфотографируйте, так сказать для полноты картины
|
-- Прилагается рисунок: --
Прикрепленный файл: 2389067.rar
|
|
|
|
16.03.2009, 14:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Onanimus
|
temp = temp & ~(1‹‹CS02 & 1‹‹CS01 & 1‹‹CS00);
|
Сенк... выходит с "нулевыми" битами такие конструкции не работают?.. то ест с битами = 0?
только через инверсию ?
|
|
|
|
16.03.2009, 15:32
|
|
Прохожий
Регистрация: 12.11.2008
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Код:
|
0 & 0 & 0 & 0 == 0
~(1 | 2 | 4 | 8) == 0xF0 ili 0xFFF0 ili 0xFFFFFFF0 v zavisimosti on kolichestva razriadov peremennoi |
|
|
|
|
16.03.2009, 15:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
picavr, для всеобщего счастья - практически все макросы на авр
http://electronix.ru/forum/index.php...=post&id=30242
Код:
|
//================================================== ================//
// AVR port bits access macros //
// Original written by Ascold Volkov. Rewritten by Andy Mozzevilov //
// Corrected by Baser (21 Feb 2008) //
// Examples: //
// #define Pin1 D,2,H -› (Port, Bit number, Active level) //
// #define Pin2 C,3,L -› (Port, Bit number, Active level) //
// Summary: //
// On(pin_x) - Set Active level on output pin_x //
// Off(pin_x) - Set Passive level on output pin_x //
// High(pin_x) - Set High level on output pin_x //
// Low(pin_x) - Set Low level on output pin_x //
// Signal(pin_x) - Check Active level on input pin_x //
// Latch(pin_x) - Check Active level on output latch of pin_x //
// DirIsIn(pin_x) - Check if direction of pin_x is Input //
// DirIsOut(pin_x) - Check if direction of pin_x is Output //
// Toggle(pin_x) - Toggle (change) output pin_x level //
// n(pin_x) - Return port pin_x number (0...7) //
// SetDir(pin_x, direction) - Set direction of pin_x (In or Out) //
// InputMode(pin_x, mode) - Set input pin_x mode (PullUp or HiZ) //
//================================================== ================//
#ifndef __PORTMACROS_H
#define __PORTMACROS_H
#define _setL(port,bit) (port&=~(1‹‹bit))
#define _setH(port,bit) (port|=(1‹‹bit))
#define _set(port,bit,val) _set##val(PORT##port,bit)
#define _high(port,bit,val) _setH(PORT##port,bit)
#define On(x) _set(x)
#define High(x) _high(x)
#define _clrL(port,bit) (port|=(1‹‹bit))
#define _clrH(port,bit) (port&=~(1‹‹bit))
#define _clr(port,bit,val) _clr##val(PORT##port,bit)
#define _low(port,bit,val) _clrH(PORT##port,bit)
#define Off(x) _clr(x)
#define Low(x) _low(x)
#define _bitL(port,bit) (!(port&(1‹‹bit)))
#define _bitH(port,bit) (port&(1‹‹bit))
#define _bit(port,bit,val) _bit##val(PIN##port,bit)
#define _latch(port,bit,val) _bit##val(PORT##port,bit)
#define _dirI(port,bit,val) _bitL(DDR##port,bit)
#define _dirO(port,bit,val) _bitH(DDR##port,bit)
#define Signal(x) _bit(x)
#define Latch(x) _latch(x)
#define DirIsIn(x) _dirI(x)
#define DirIsOut(x) _dirO(x)
#define _xor(port,bit,val) (port^=(1‹‹bit))
#define __xor(port,bit,val) PORT##port^=(1‹‹bit)
#define Toggle(x) __xor(x)
#define _bitnum(port,bit,val) bit
#define n(x) _bitnum(x)
#define _setOut(port,bit) (port|=(1‹‹bit))
#define _setIn(port,bit) (port&=~(1‹‹bit))
#define _setPullUp(port,bit) (port|=(1‹‹bit))
#define _setHiZ(port,bit) (port&=~(1‹‹bit))
#define _mode(port,bit,val,mode) _set##mode(DDR##port,bit)
#define _imode(port,bit,val,imode) _set##imode(PORT##port,bit)
//mode = Out or In
#define SetDir(x,mode) _mode(x,mode)
//imode = PullUp or HiZ
#define InputMode(x,dmode) _imode(x,dmode)
#endif /* __PORTMACROS_H */ |
|
|
|
|
16.03.2009, 22:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Onanimus
|
Код:
|
0 & 0 & 0 & 0 == 0
~(1 | 2 | 4 | 8) == 0xF0 ili 0xFFF0 ili 0xFFFFFFF0 v zavisimosti on kolichestva razriadov peremennoi |
|
я имел в виду конструкиция:
0‹ //не работает
~1‹ //а работает только инверсия "1"
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:23.
|
|