| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Питане за Microchip TCPIP stack http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14953 |
Страница 1 от 4 |
| Автор: | stoyanoff [ Вто Дек 20, 2016 6:39 pm ] |
| Заглавие: | Питане за Microchip TCPIP stack |
Здравейте! Не съм използвам стек-а с MPLAB X до сега. До колкото прочетох, v6 не поддържа малките контролери (PIC18 и PIC24). Та се върнах малко назад - mla 2016 08 08. Прави ми впечатление, че MAC функциите са сложени във файл drv_wifi_mac.c. Това мога ли да го използвам за стандартна LAN връзка - telnet? Питам, защото когато теглих стек-а, беше отбелязано, че е само с wi-fi support. Още назад ли трябва да се върна във версиите? Питам, защото когато разреших telnet сървър-а, ми връща грешка - липсваща MAC функция! Благодаря! |
|
| Автор: | ДедоБоре [ Вто Дек 20, 2016 10:15 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
v6 означава ли IPv6? |
|
| Автор: | stoyanoff [ Вто Дек 20, 2016 10:46 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
Не! Версия 6, която е на мода сега. Общо взето си намерих старата версия за обикновенния MPLab и я зареждам в момента за MPLAB X. Всъщност забелязах, че последната за PIC18 и 24(v5.47) си има файловете, но са набутани при CAN-a... На тези винаги съм им се чудил на смотания начин, по който си разполагат файловете. Докато си спомня всички глупости ще отнеме малко време |
|
| Автор: | stoyanoff [ Сря Дек 28, 2016 2:59 pm ] | |||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||
Здравейте! Използвам XC8 и имам следният казус : имам дефиниран някакъв enum:
|
||||||||||
| Автор: | syscop [ Сря Дек 28, 2016 3:12 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
#if !defined(__BLABLA_H) #define __BLABLA_H typedef enum EnumType{bla bla bla}; #endif /* __BLABLA_H */ Нещо такова няма ли да помогне ? |
|
| Автор: | stoyanoff [ Сря Дек 28, 2016 3:33 pm ] | |||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||
Ами така стана, но явно нещо съм оплескал дефинирането на enum. Изглежда иска да спазя структурата
Не знам защо иска инстанция на enum при положение, че това е тип... |
||||||||||
| Автор: | slav4o.com [ Сря Дек 28, 2016 3:41 pm ] | |||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||
хм.. ами не може ли да се сложат променливите в един файл и във другите да ги ползваш, като използваш extern p.s. я пробвай така:
|
||||||||||
| Автор: | sparkybg [ Сря Дек 28, 2016 4:01 pm ] | |||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||
Не само че ще помогне, ами това е стандартно възприетия начин за такива неща. Това трянва да го има във всеки хедър файл. |
||||||||||
| Автор: | stoyanoff [ Сря Дек 28, 2016 4:02 pm ] | ||||||||||||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | ||||||||||||||||||
Ц! Пробвах, не го кефи! То по-скоро в този случай трябва отделно да бъде създадена инстанция на enum-a : .c
и тогава в .h extern, но на мен не ми трябва инстанцията, а променливата(типа), за да мога да задам на функции да връщат този тип. Явно е някаква особеност на компилатора, защото аз на практина никъде не използвам инстанцията, а само типа! Или ако се използва в дадената функция се дефинира... |
|||||||||||||||||||
| Автор: | slav4o.com [ Сря Дек 28, 2016 4:14 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
Малко се обърках. Но мисля че най-добре с указатели да го направиш. Когато една функция връща повече от BOOL char int или някой прост тип, май си е направо задължително. Просто слагаш в параметрите къде да изсере после функцията нещата. Даже може да не ги слагаш като зададеш NULL . Така функцията може да я дефинираш без дори да има място където да изпляска нещата. После може да си декларираш 1000 места за целта. |
|
| Автор: | sparkybg [ Сря Дек 28, 2016 4:29 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
Кви указатели, кви 5 лева ба хора?! Излагацията е пълна! extern, ststic и volatile са ползват за променливи и функции. enum-а не е нито едно от двете - няма си адрес а е чисто имагинерно понятие. 1. enum-а се слаха в "h" фаил 2. В началото и края на "h" файла се добавя: #ifndef __enum_h__ #define __enum_h__ public enum bla-bla-bla... ... ... #endif После тоя h файл може да се инклудва навсякъде, където ти трябва, може и по няколко пъти, и грешка няма да има. Горните ифове се слагат именно за да се инклудне само веднъж. Всеки "h" файл, който се използва на повече от едно място, трябва да има такива ифове. Например всичките стандартни библиотеки на микрочип го имат в "h" файловете си. |
|
| Автор: | stoyanoff [ Сря Дек 28, 2016 7:50 pm ] | |||||||||||||||||||||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||||||||||||||||||||
Няма никаква излагация! Ето как стоят нещата:
Това не работи! За да стане работа, компилаторът иска ето това:
До колкото ми е известно това създава enum тип и създава променлива от този тип. Както казах, най-вероятно става дума за някаква особеност на компилатора, защото в кода нямам никъде употреба на променливата, а само на типа... |
||||||||||||||||||||||||||||
| Автор: | sparkybg [ Сря Дек 28, 2016 8:23 pm ] | ||||||||||||||||||||||||||||||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | ||||||||||||||||||||||||||||||||||||
Това дето е между #define и #endif не е моя работа. Въпроса беше как да се реши проблема с грешкита за двойна дефиниция, а той се решава с въпросните if-ове. Указател към enum е оксиморон. Указател към променлива от тип enum вече е ок, защото има към какво да сочи. Ето по въпроса за typedef: https://www.tutorialspoint.com/cprogram ... ypedef.htm Ето и по-изчерпателно: http://stackoverflow.com/questions/1675 ... efinitions Не е особеност на компилатора, ами си е така във всички компилатори. Въпросния enum могеш да го дефинираш и така:
а можеш и така:
после можеш да го ползваш като:
, като ddd вече е променлива от тип bbb, а не от тип ААА, защото AAA не е тип, а име на ENUM-а. А ако си използвал първата дефиниция може и така:
, като и двете са еквивалентни. просто "bbb" е alias на "enum AAA", точно както при "typedef unsigned int UINT", "UINT" e alias на "unsigned int". Капиш? |
|||||||||||||||||||||||||||||||||||||
| Автор: | stefan63 [ Сря Дек 28, 2016 8:25 pm ] | |||||||||
| Заглавие: | Re: Питане за Microchip TCPIP stack | |||||||||
Това ме разсипа. Ц-то не е за мен. |
||||||||||
| Автор: | stoyanoff [ Сря Дек 28, 2016 8:56 pm ] |
| Заглавие: | Re: Питане за Microchip TCPIP stack |
Направих 4 супер глупави файла само с дефиниция на функции, но без в тялото на функциите да става, каквото и да било. Просто съм казал, че ще върне променлива от този тип, като връщам 0, което е валидна стойност в тялото на enum(преобразува го към enum-a). На практика тези функции само са дефинирани и не се викат никъде. Не се създават променливи на практика(мисля). Та само #ifndef #endif не работи! Не решава проблема. Пак има duplicate define, въпреки че вече излиза на второ място като грешка... Може да съм се овъртолил нещо, защото при някои от C-тата, когато сложиш след дефиницията име, създава променлива. Тук може да не е така, но без това второ име не става. Поне при мен. Може в по-новите верисии на XC8 да си работи и без него.... Не знам защо става така... |
|
| Страница 1 от 4 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|