| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Помощ за курсов проект http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=14244 |
Страница 1 от 1 |
| Автор: | eng.komitov [ Нед Дек 27, 2015 11:10 am ] | |||||||||||||||||||||||||||
| Заглавие: | Помощ за курсов проект | |||||||||||||||||||||||||||
Весела Коледа на всички. Правя курсов проект на тема "три-позиционен терморегулатор". Не съм сигурен, че правилно съм дефинирал глобалните променливи и декларирал в подпрограмите. Ето как съм дефинирал глобалните променливи и константи:
Следва деклариране на използваните подпрограми и дефиниране на функцията main.c
А това е част от кода на функцията menu, в която се настройват глобалните променливи (параметрите на регулатора) :
Правилно ли съм дефинирал и декларирал глобалните променливи? |
||||||||||||||||||||||||||||
| Автор: | eng.komitov [ Нед Дек 27, 2015 3:22 pm ] | |||||||||
| Заглавие: | Re: Помощ за курсов проект | |||||||||
А при опит за компилиране с bild all ми изписва следните предупреждения и грешки:
Може би трябва да дефинирам собствена функция копираща един низ в друг, но как? |
||||||||||
| Автор: | miro_atc [ Нед Дек 27, 2015 3:44 pm ] | ||||||||||||||||||||||||||||||||||||
| Заглавие: | Re: Помощ за курсов проект | ||||||||||||||||||||||||||||||||||||
Това декларира Pzd_3 като масив от char тип, а пък в инициализацията имаш " developed by " което е cons char*. Демек масивът ти е от символи, а го инициализираш с указател към символи. Не е ясно какво искаш да постигнеш, но възможни варианти са:
... с функциите също не е ясно какво се опитваш... |
|||||||||||||||||||||||||||||||||||||
| Автор: | eng.komitov [ Нед Дек 27, 2015 6:57 pm ] | ||
| Заглавие: | Re: Помощ за курсов проект | ||
В реда, който цитираш дефинирам масив от тип char , който е константа съхранявана в програмната памет(иначе е безсмислена инициализацията). Масива го инициализирам с низа " developed by ", който се копира от библиотечната функция strcpy в глобалната променлива first_row, за да се изведе с функцията в прикачения файл на горния ред на 2х16 буквено-цифров LCD.
|
|||
| Автор: | miro_atc [ Нед Дек 27, 2015 8:47 pm ] |
| Заглавие: | Re: Помощ за курсов проект |
Виж.... в Ц/Ц++ когато имаш нещо в кавички, това е от тип const char* иначе казано указател към константен символ или символи... Когато този (или някой друг тип) го сложиш във фигурни скобки се получава структура или масив от дадения тип. Демек {'....'} е структура или масив от указатели. Ти обаче го ползваш за инициализация на масив от символи. Съответно получаваш предупреждение, че указател се преобразува до нещо друго. Не знам как по друг начин да ти го обясня.... |
|
| Автор: | eng.komitov [ Нед Дек 27, 2015 10:16 pm ] |
| Заглавие: | Re: Помощ за курсов проект |
Разбрах те просто по начало беше масив и съм забравил да изтрия фигурните скоби, както и квадратните. |
|
| Автор: | eng.komitov [ Нед Дек 27, 2015 10:22 pm ] |
| Заглавие: | Re: Помощ за курсов проект |
За глобалните променливи се използва ключовата дума static. Прочетох го в ръководството, първия път не съм търсил внимателно. |
|
| Автор: | miro_atc [ Нед Дек 27, 2015 11:04 pm ] | |||||||||
| Заглавие: | Re: Помощ за курсов проект | |||||||||
Хм.... Не ги знам тия ръководства и на какви глупости ви учат. Но в С имаш компилация на един или повече сорс файла, при което се получават съответния брой обектни файлове. Следва процес на линкване, при който от отделните единици (файлове) се получава една програма или една библиотека или там каквото линкваш... Компилацията на отделните единици е независима, т.е. може да компилираш един файл, преди изобщо да си написал другите. Все пак обаче се налага да ползваш променливи или функции от един сорс в друг. За целта се повтаря декларацията и се слага extern. Така компилатора разбира, че въпросния обект няма да бъде дефиниран в рамките на текущата единица на компилация, а ще е някъде другаде... Обратно, ако сложиш static, това означава че декларираш или дефинираш локален обект. За променливите статика също променя и storage class-а, но това е страничен ефект. |
||||||||||
| Автор: | eng.komitov [ Пон Дек 28, 2015 10:57 am ] |
| Заглавие: | Re: Помощ за курсов проект |
Благодаря ти миро за отговора точно за това питах. А ръководството е на мплаб с18. |
|
| Автор: | eng.komitov [ Вто Яну 05, 2016 10:04 am ] |
| Заглавие: | Re: Помощ за курсов проект |
За много години. След като написах функция за копиране на низ кода се компилира без грешки. Но ми изписва предупреждение, че бита за разрешаване на разширения режим е ON, а в програмата не е и може програмата да не работи. В менюто за конфигуриране махнах отметката за конфигуриране от програмата и нулирах бита (изключих разширения режим), но пак ми изписа същото предупреждение. Опитах да програмирам контролера със създадения HEX файл и ми изписа грешка на 1-ви ред 1-ва колона. Грешката при програмирането следствие от разрешения разширен режим ли е? Как да премахна предупреждението и грешката? |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|