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

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

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

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

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

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


 
Опции темы
Непрочитано 01.05.2013, 11:22  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Митя Посмотреть сообщение
для чайника чайницкого
В том-то и дело.
Когда уже узнал все "мели" компилятора, тогда эмпирически можно ошибку понять, а сначала по-любому смотреть надо - чего оно там накомпилячило.
Реклама:
omercury вне форума  
Непрочитано 18.11.2013, 21:44  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Может кто сталкивался с проблемой:

IAR AVR, ATmega128, Normal DLIB, time.h
По-умолчанию размер структуры time_t - 32 бита, что позволяет хранить даты в диапазоне от 1 янв 1900 года до 2036 года. В том же файле описана структура размером в 64 бита, позволяющая работать с диапазоном от -9999 до 9999 года. Никак не получается её использовать - не нашёл настройку IAR или может какой дефайн нужно сделать. Подскажите плиз, как же заставить IAR работать с 64-битным временем?
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 19.11.2013, 02:38  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Зачем спрашивать одно и то же в разных темах? И при чём здесь Си и AVR?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 07.01.2015, 04:54  
Str@nnik
Прохожий
 
Регистрация: 03.01.2015
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Str@nnik на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Здравствуйте! Собрал астротаймер на led и кварце 32768, работает хорошо. Интересует несколько опций в меню которые нигде не описаны .

Заранее благодарен .
Str@nnik вне форума  
Непрочитано 13.07.2015, 14:12  
kosmos440o
Заблокирован
 
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
kosmos440o на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Здравствуйте. Сейчас ломаю голову над одной задачей, может кто поможет.
Есть у меня такие менюшки - штук 150 в программе. Начинаю путаться. Смысл задачи состоит в том, чтобы в бесклассовом языке сделать всё-таки что-то типа класса, и объединить данные из RAM, FLASH и EEPROM в одном флаконе (в смысле массиве, структуре, смеси, объединении), ещё и впридачу разных типов. И ещё бы и функции пристегнуть. В сети много примеров, но у меня обработка немного другая и ещё разнообразная. Просто портировать не получается.
Ещё и на работе и дома бедлам, не дают даже в туалете уединиться, подумать о судьбах Родины.
Код:
void setting11_menu()
{
set_banner(3,0,"Н11 НАГРЕВ");
muc_temp1=REG[P_HEATER].lo_byte;
muc_temp2=muc_temp1;
muc_temp3=REG[P_HEATER].min;
muc_temp4=REG[P_HEATER].max;
init_menu();
change_val=0;
while (1){ set_banner(3,0,"Н11 НАГРЕВ");
                if (change_val) {menu_signs(); }  else  {  menu_arrows();   };
                 lcd_gotoxy(0,1);
                lcd_putsf_ru ("ЗОНА ПРОП");
                 if (flag_keys) {if (flag_up) {
                                                        if (change_val) {change_val=0;flag_up=0;flag_keys=0;screen_counter  =1; }  else  {  sel_menu= setting1_menu; return;};
                                                        };
                                      if (flag_down) {
                                                            if (change_val) { flag_down=0;flag_keys=0;screen_counter=1;change_va  l=0;
                                                                                    if ((muc_temp2!=muc_temp1)&&(eeprom_en))
                                                                                                         { // поставить pwr_control здесь и в polling     if eeprom_en
                                                                                                        REG[P_HEATER].lo_byte=muc_temp2;
//                                                                                                        #asm("cli")
//                                                                                                        fact_set=e_fact_set;
//                                                                                                        if (fact_set){e_fact_set=0;};
//                                                                                                        e_REG[P_HEATER].lo_byte=REG[P_HEATER].lo_byte;
//                                                                                                        #asm("sei")
                                                                                                        muc_temp1=REG[P_HEATER].lo_byte;
                                                                                                        };
                                                                                    //setting11_menu();
                                                                                    }
                                                              else  {   change_val=1;flag_down=0;flag_keys=0;screen_counte  r=1; };
                                                            };
                                     if (flag_left) {
                                                        if (change_val) {
                                                                                flag_left=0;flag_keys=0;screen_counter=1;
                                                                                if (muc_temp2‹=muc_temp3) {muc_temp2=muc_temp4; } else {muc_temp2--;};
                                                                                }
                                                         else {sel_menu=setting17_menu;return;};
                                                        };
                                     if (flag_right) {
                                                         if (change_val) {
                                                                                flag_right=0; flag_keys=0; screen_counter=1;
                                                                                muc_temp2++;if (muc_temp2›muc_temp4) {muc_temp2=muc_temp3; };
                                                                                }
                                                          else {sel_menu=setting12_menu; return;};
                                                         };
                                     };
                lcd_gotoxy(10,1);
                if (change_val) {
                                       if (screen_counter==1) {flag_blink=0; }
                                           else {flag_blink=1;};
                                       }
                  else {flag_blink=0;};
                 if (flag_blink) {lcd_putchar(0xFF);lcd_putchar(0xFF); }
                    else  {sprintf(lcd_string,"%02u",muc_temp2); lcd_puts(lcd_string);   };
                lcd_putchar(0xDF);
                lcd_putsf("C");
                #asm("wdr")
               screen_manager();
                if (serv_tim1›14000) {sel_menu=major_menu; return; };
                };
}
kosmos440o вне форума  
Непрочитано 13.04.2016, 21:58  
nbo
Частый гость
 
Регистрация: 03.11.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
nbo на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Str@nnik Посмотреть сообщение
Здравствуйте! Собрал астротаймер на led и кварце 32768, работает хорошо. Интересует несколько опций в меню которые нигде не описаны .

Заранее благодарен .
У самого такой же работает уже года 2.
1-е это корекция хода часов.
2-е 3-е помоему включает\отключает расчет времени включения\отключения по сумеркам. Помоему так если не ошибаюсь.
Дополнительно изменил программу для возможности принудительного отключения на некоторый период ночью. Применяю для включения света в курятнике.
nbo вне форума  
Непрочитано 14.04.2016, 06:16  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

dH и dL введены для экономии электричества, это принудительное время включения и выключения. Например ночью астротаймер включил свет, но в период с 02:00 до 06:00 нам освещение не нужно. Если эти величины выставить одинаковыми, то принудительного управления не будет.
IOPA4 вне форума  
Непрочитано 14.04.2016, 06:19  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от nbo Посмотреть сообщение
Применяю для включения света в курятнике.
Для курятника есть другая тема https://kazus.ru/forums/showthread.php?t=112286&page=10
IOPA4 вне форума  
Непрочитано 03.11.2016, 01:07  
Azar123
Прохожий
 
Регистрация: 15.02.2009
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Azar123 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

IOPA4, у вас немного неправильно работает перевод времени лето/зима. Переводиться только отображаемое время, а время вкл./откл. света не переводиться. Получается, что после перехода на зимнее время в 16-00 уже темно, а включение должно произойти только в 16-45. Т.е. надо смещать на час еще и расчеты вкл/откл света. Это можно поправить?
Заранее спасибо.

Последний раз редактировалось Azar123; 03.11.2016 в 01:14.
Azar123 вне форума  
Непрочитано 26.11.2016, 12:59  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

После перевода времени нужно обновить данные, иначе вычисление восхода/захода произойдет только на следующие сутки:
Цитата:
void clock(void)
{
read_data(); //читаем дату и время из DS1307
#ifdef CORR
if ((Mon==3) && (Day›24) && (WeekDay=7) &&(change==0)) //если март и дата последнего
{ //воскресенья и перевод разрешен
if (Hrs==3) //и если время 3 ночи
{
Hrs++; //перевод на час вперед
// Watch++;
// eep_zone = Watch;
change=1; //запрет перевода в этом месяце
write_data();
calc();
}
};

if ((Mon==10) && (Day›24) && (WeekDay=7) && (change==0)) //если октябрь и дата последнего
{ //воскресенья и перевод разрешен
if (Hrs==3) //и если время 3 ночи
{
Hrs--; //перевод на час назад
// Watch--;
// eep_zone = Watch;
change=1; //запрет перевода в этом месяце
write_data();
calc();
}
};
#endif
if (Sec==0) {on_off_led(); //решаем включать или выключать свет
recode_time();} //только каждую минуту, отобразить время
if ((Sec==0)&&(Mins==0)&&(Hrs==0)) calc(); //раз в сутки вычисляем время восхода/захода
}
IOPA4 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot