простые интересные РАДИОСХЕМЫ сделанные своими руками

» Гость

Мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизируйтесь!





» ДАТАШИТЫ
Например: TDA1562

» СХЕМЫ


Отметить прочитанными   -   Поиск   -   Правила   -   Новые сообщения

Страница 3 из 5«12345»
Модератор форума: Igoran, Витинари, Sam 
Форум радиолюбителей » СХЕМЫ » НАЧИНАЮЩИМ » Помощь в программировании (Подскажите в какой теме можно задать вопрос)
Помощь в программировании
Ср, 31.05.2017, 15:29 | Сообщение # 21        
msmmmm
аватар
  Постов: 730  Offline Друзья 
Цитата Ник ()
delay_ms()
delay_ms() - программная задержка, т.е. контроллер занят, программа работает. В CodeVisionAVR не работаю, в Атмел Студио для этой функции в заголовке нужно прописывать тактовую частоту.
Ср, 31.05.2017, 15:54 | Сообщение # 22        
Ник
аватар
  Постов: 184  Offline
msmmmm, то есть программа работает с той частотой которая задана? В Атмел Студио4 я отлаживаю программы на работоспособность, но пока не все понятно (проблемы с английским).
Вот архив который в Протеусе работает в CodeVisionAVR не могу никак понять пишет ошибку (хотя написана там же).
Ср, 31.05.2017, 16:00 | Сообщение # 23        
nolpofaze
аватар
  Постов: 188  Offline
msmmmm,
Цитата msmmmm ()
delay_ms() - программная задержка, т.е. контроллер занят, программа работает
программа то работает, только чем она занята?


Отредактировал nolpofaze - Ср, 31.05.2017, 16:00
Ср, 31.05.2017, 18:06 | Сообщение # 24        
msmmmm
аватар
  Постов: 730  Offline Друзья 
Цитата nolpofaze ()
только чем она занята
Задержкой. Контроллеру все равно, что делать. Для него что вычисление определенного интеграла, что постоянный переход команды на себя - разницы нет.
Цитата Ник ()
программа работает с той частотой которая задана
Программа работает на такой частоте, которая будет выбрана фьюзами и определена внутренними или внешними элементами - кварцем, внешним генератором, RС цепью. Еще делителем тактовой частоты. Сама же программа пишется под эту частоту. Если указать, что задержка будет 10мс при частоте 8МГц, а в железе включить генератор 400кГц - что получим?


Отредактировал msmmmm - Ср, 31.05.2017, 22:12
Ср, 07.06.2017, 16:22 | Сообщение # 25        
Ник
аватар
  Постов: 184  Offline
Подскажите, как правильно писать самому библиотеки, или где можно посмотреть где описано не слишком заумно?
Разобрался почему не работают схемы, вся проблема в БИБЛИОТЕКАХ. Пока писал программы по проще все нормально, но только перешел на использование шин и т. д. сразу клин cry . Уже четвертый день топчусь на месте с температурным датчиком (DS18B20), а толку ноль.
Ср, 07.06.2017, 17:30 | Сообщение # 26        
msmmmm
аватар
  Постов: 730  Offline Друзья 
За это время почитал бы лучше даташит на DS18B20, понял бы как он работает и сделал бы все с одной "1wire.h". А уж потом разобрался бы с "ds18x20_v2.h". Если останется желание разбираться.
Ср, 07.06.2017, 18:14 | Сообщение # 27        
Ник
аватар
  Постов: 184  Offline
msmmmm, спасибо, а то эта библиотека мне уже снится.
Ср, 07.06.2017, 18:47 | Сообщение # 28        
msmmmm
аватар
  Постов: 730  Offline Друзья 
//radioskot.ru/forum/11-1307-21
Посмотри в сообщении 202 проект Атмел Студио часов с термометром на Мега8. И проверялка в Протеусе. Может что пригодится, это без библиотеки на ds18x20.
Чт, 08.06.2017, 12:39 | Сообщение # 29        
Ник
аватар
  Постов: 184  Offline
msmmmm, "посмотрел", плохо доходит форма написания кода. Переменные (button1,meny и т.д.) им как присваивают значения? Просто в CodeVisionAVR пишется так.
bit z=0;
float skor=0,vrem=0,sutki=0,probeg=0; //переменные скорости, времени , общего пробега, суточный пробег
unsigned char rej=0,a=0;
И еще как я понял amega8_clock это основная программа, а untitled там прописана работа с 1Wire? поправите если не так.
вот часть кода:
//----------------DS18B20---------------------------------
Din_Counter_Cicle++;
switch (State) {
case 0: if (Din_Counter_Cicle>5000){OW_Reset();State++;}break; //(10 s)
case 1: OW_WriteByte(OW_CMD_SKIPROM); State++;break;
case 2: OW_WriteByte(THERM_CMD_CONVERTTEMP);
Din_Counter_Cicle= 0;
State++; break;
case 3: if (Din_Counter_Cicle==500){OW_Reset();State++;} break; //(1 s)
case 4: OW_WriteByte(OW_CMD_SKIPROM); State++; break;
case 5: OW_WriteByte(THERM_CMD_RSCRATCHPAD);State++; break;
case 6: buff[0] = OW_ReadByte();State++; break; // Read TL
case 7: buff[1] = OW_ReadByte(); // Read TH
Din_Counter_Cicle= 0;
State++; break;
case 8: if(*iptr<0) {*iptr=-*iptr; signPlus=0;}
else {signPlus=1;}
indic[6]= ((unsigned char)(*iptr>>4))%10; State++; break;
case 9: indic[7]= ((unsigned char)(*iptr>>4))/10; State=0; break;
}
}
здесь прописана работа с датчиком. OW_WriteByte и Din_Counter_Cicle и т.д. это переменная ? или выполнение части программы в untitled? обеднение программ происходит с помощью #include "" ?
// "новые вопросы порождают НОВЫЕ ВОПРОСЫ"
Чт, 08.06.2017, 14:31 | Сообщение # 30        
msmmmm
аватар
  Постов: 730  Offline Друзья 
Ник,
Цитата Ник ()
button1,meny и т.д.
и другие глобальные переменные объявлены, как и положено, в хидере, которые нужно там же и инициализированы, остальные инициализируются по мере необходимости. "По умолчанию каждой из описанных переменных сразу присваивается нулевое значение" - цитата из описания GCC AVR.
Для работы с датчиком используется "onewire.с" со своим хидером "onewire.h". Посмотри функции, которые туда входят - многие вопросы отпадут. В т.ч. OW_WriteByte (даже по смыслу понятно) - запись байта в устройство по шине 1wire.
Din_Counter_Cicle - переменная, если не используется динамическая индикация, то она и
switch (State) со всеми case-ами не нужны. Переключатель здесь используется для работы в реальном времени между тиками ДИ в зависимости от текущего состояния программы.
#include "" - включить. В этом месте подставляется текст из указанного файла.
В журнале "Радиолюбитель" в 2010-2011 гг печаталось "WinAVR и AVR Studio - справочное руководство". Очень кратко и толково. Насколько сходится с CodeVisionAVR не знаю, но большой разницы быть не должно. С - он и в Африке С.


Отредактировал msmmmm - Чт, 08.06.2017, 14:32
Форум радиолюбителей » СХЕМЫ » НАЧИНАЮЩИМ » Помощь в программировании (Подскажите в какой теме можно задать вопрос)
Страница 3 из 5«12345»
Поиск:
Кто есть кто на форуме радиолюбителей: Администратор Модераторы Друзья Пользователи
Группа вконтакте Канал ютуб Группа в фэйсбук Мобильная версия © 2010-2018, "Радиосхемы". Все права защищены. Почта