25.02.2009, 15:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Сообщение от dimonbest
|
А почему не сделать так, работает:
Код:
|
char _msg1[17]="Enter latitude ";
.
.
.
.
lcd_puts(_msg1); |
|
Объявил переменную _cls[17]=" " - затирание верхней строки в LCD;
Применил три раза и получил код большего размера
-- Прилагается рисунок: --
|
|
|
|
25.02.2009, 17:15
|
|
Временная регистрация
Регистрация: 04.04.2008
Сообщений: 49
Сказал спасибо: 29
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Да уж дискусия темы далека от его названия!!!
|
|
|
|
26.02.2009, 16:06
|
|
Прохожий
Регистрация: 08.12.2008
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Буду очень благодарен IOPA4 за помощь. Как воспользоваться Вашими функциями для расчета восхода/захода Солнца? На входе есть число, месяц, год и широта. Долгота всегда берется одна (скажем 0). На выходе нужно получить UTC время восхода и заката. Процессор ATmega88PV-10AU, но это не суть важно (хотя 8Кб программной памяти просто гнобят )
Смотрю файл hw3.с, но пока не могу понять, где же эти самые времена и из чего получаются...
|
|
|
|
26.02.2009, 18:54
|
|
Прописка
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
to IOPA4 стукните в рабочее время 219 375 711
пообщаемся. если смогу помогу.
|
|
|
|
26.02.2009, 20:32
|
|
Прописка
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Уроки СИ для AVR микроконроллеров
Здравствуйте IOPA4 как и обещал, дал ваш код профессиональному программисту он над ним немного поколдовал, получилось ужать но для 8меги всёравно много.
-- Прилагается рисунок: --
Прикрепленный файл: 2690098.rar
|
|
|
|
26.02.2009, 20:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Сообщение от alexkuba
|
Буду очень благодарен IOPA4 за помощь. Как воспользоваться Вашими функциями для расчета восхода/захода Солнца? На входе есть число, месяц, год и широта. Долгота всегда берется одна (скажем 0). На выходе нужно получить UTC время восхода и заката. Процессор ATmega88PV-10AU, но это не суть важно (хотя 8Кб программной памяти просто гнобят )
Смотрю файл hw3.с, но пока не могу понять, где же эти самые времена и из чего получаются...
|
Поясните, пожалуйста, что за устройство. Если, только показывать время восхода/захода солнца и текущее время (координаты, часовой пояс - не требуют ввода, то, в принципе, до Atmegi8 ужаться можно.
Код:
|
//B5 - широта, lat - долгота, day,M,Y - день, месяц, год, H - часовой пояс
//hr, mins, sec, msec - часы, минуты, секунды - для часов, сс - счетчик |
Солнечное время расчитывается по методу Монтенбрука и Пфлегера (в интернете есть книга), а времена сохраняются в два массива HH и MM. В [0] восход, в [1] заход.
|
|
|
|
26.02.2009, 21:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от yuriji
|
Здравствуйте IOPA4 как и обещал, дал ваш код профессиональному программисту он над ним немного поколдовал, получилось ужать но для 8меги всёравно много.
|
Тезка, огромное спасибо. Чувствуется рука профессионала , но код еще можно поджать:
Код:
|
void Calendar(void) //G,Y,D,D1,J,M,F,S,J3
{
// G = 1;
// if (Y ‹ 1583) {G = 0;};
D1 = Trunc(D);
F = D - D1 - 0.5;
J = -Trunc(7 * (Trunc((M + 9) / 12) + Y) / 4);
if (G == 1)
{
S = Sgn(M - 9);
//A = Abs(M - 9);
J3 = Trunc(Y + S * Trunc(Abs(M - 9)/7)); //A / 7));
J3 =( -(((J3 / 100) + 1) * 3 / 4));
}
// J = J + Trunc(275 * M / 9) + D1 + G * J3;
// J = J + 1721027 + 2 * G + 367 * Y;
J = J + Trunc(275 * M / 9) + D1 + J3;
J = J + 1721029 + 367 * Y;
if (F ›= 0) {goto end1;};
F = F + 1;
J = J - 1;
end1:
} |
Для наших целей 1583 год не реален Интересно, пробовал ли Профи загнать константы в EEPROM?
-- Прилагается рисунок: --
Прикрепленный файл: 2690098.rar
|
|
|
|
26.02.2009, 21:44
|
|
Прописка
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Он еще обещал проработать с кодом. Кстати ссылкой на книгу (Монтенбрука и Пфлегера) не поделитесь, я пока не могу понять сам принцип.
|
|
|
|
26.02.2009, 21:51
|
|
Прописка
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Вы писали ››››
Если, только показывать время восхода/захода солнца и текущее время (координаты, часовой пояс - не требуют ввода, то, в принципе, до Atmegi8 ужаться можно.
›››
Результат можно посмотреть?? А лучше пощупать.
|
|
|
|
26.02.2009, 22:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Уроки СИ для AVR микроконроллеров
Сообщение от yuriji
|
Он еще обещал проработать с кодом. Кстати ссылкой на книгу (Монтенбрука и Пфлегера) не поделитесь, я пока не могу понять сам принцип.
|
Есть подозрение, что в расчет вкралась небольшая ошибка. Может не внимательно проверил, но у меня вышло расхождение во времени - я проверял для своих координат. Если устроит, я могу учебник залить на депозит, качал Оперой и линк не сохранился. И еще:
Код:
|
switch (ind)
{
case 1: B5=ddey; break;
case 2: lat=(float)ddey; break;
case 3: M=ddey; break;
case 4: day=ddey; break;
case 5: Y=ddey; break;
case 6: hr=ddey; break;
case 7: mins=ddey; break;
}; |
И еще, если записать так, то код еще чуть меньше:
Код:
|
flash const float P2=6.283185307180;
flash const float DR=0.017453292520;
flash const float K1=0.262516089803; |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:47.
|
|