Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 23.08.2017, 20:01   #1
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию вопрос знатокам СИ "часть2"

мужики выручайте, у меня ступор, может глаз замылился
компилятор пишет такую фигню
Цитата:
Build c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX for device 12F683
Using driver C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe

Make: The target "c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.obj" is out of date.
Executing: "C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe" -C "c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c" -q --chip=12F683 -P --runtime=default,+clear,+init,-keep,+osccal,-download,-ramtest,-resetbits,+clib --opt=default,+asm,-speed,+space,9 --warn=0 -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Error [194] c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c; 407.27 ")" expected
Error [195] c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c; 407.28 expression syntax
Error [285] c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c; 419.1 no identifier in declaration
Warning [374] c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c; 419.1 missing basic type; int assumed
Error [314] c:\Program Files\Microchip\MPASM Suite\PIC_1\12F_RX_TX\12F683RX\12F683RX.c; 419.1 ";" expected
Код:
//**************************************************
void SleepWork(void)
{unsigned  int cDelay;
   caunt_WDT=0;  
   while(flag.SleepWork)
      { 
        CLRWDT(); 
        OPTION=0b10001111;  //WDT  срабатывает каждые 18мс*128=2,3сек 
        GIE=0; 
        GPIE=0;

                
        TMR2ON=0;          // выключили ШИМ
        CCP1CON=0b00000000; 
        if (MassPWM[0]==ConstPeriodPWM+1)
         {   
           tempGPIO|=(1<<PWMout); // PWM100%
         }
        else
         {
           tempGPIO&=~(1<<PWMout); // PWM0%
         }
        tempGPIO&=~(1<<RECEIVER);

                
        CLRWDT(); 
        SLEEP();
        CLRWDT();
        NOP();    
                
        PINGPIO=GPIO;
        GPIF=0;
        if(!(PINGPIO&(1<<StnBye)))
          { 
            break;
          }
                  
        if(caunt_WDT>339) // 2.3sek*339=13min
          {
            caunt_WDT=0; 
            tempGPIO|=(1<<RECEIVER); 
            GPIO=tempGPIO; 
            
            IOC=(1<<DATA); 
            GPIO=tempGPIO;
            PINGPIO=GPIO;
            GPIF=0;
            GPIE=1;
            GIE=1;
            cDelay=50000;
            while(cDelay) 
             { cDelay--;
407:                 if (code_butt_BUFF == DEVACE_ON)
408:                {
409:                    flag.SleepWork=0;   
410:                    CCPR1L=MassPWM[0];
411:                    break; // выход из цикла задержки     
412:                 }
413:             }
414:            NOP(); 
415:           }
416:          caunt_WDT++;  
417:          
418:       } //end while(flag.SleepWork)      
419: } //end void SleepWork(void)
что ему не нравится?
DmitrijVDN вне форума   Ответить с цитированием
Старый 23.08.2017, 21:00   #2
BarsTmb
Senior Member
 
Аватар для BarsTmb
 
Регистрация: 30.03.2011
Адрес: Тамбов
Возраст: 48
Сообщений: 336
Вес репутации: 1339/40
BarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud ofBarsTmb has much to be proud of
По умолчанию Re: вопрос знатокам СИ "часть2"

Код:
code_butt_BUFF == DEVACE_ON
Как это описано? Не "дефайны" со скобками?
__________________
Присмотрелись мы - и действительно!
BarsTmb вне форума   Ответить с цитированием
Старый 23.08.2017, 23:09   #3
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: вопрос знатокам СИ "часть2"

Код:
#define DEVACE_ON  0x11;
Код:
unsigned char  code_butt_BUFF;
unsigned int caunt_WDT;
спасибо за наводку, в запарке дефайны закрыл точкой с запятой, убрал все заработоло

Последний раз редактировалось DmitrijVDN; 23.08.2017 в 23:28.
DmitrijVDN вне форума   Ответить с цитированием
Старый 13.10.2017, 13:14   #4
alexandr_p
Junior Member
 
Регистрация: 16.05.2014
Возраст: 23
Сообщений: 28
Вес репутации: 131/14
alexandr_p will become famous soon enoughalexandr_p will become famous soon enough
По умолчанию Re: вопрос знатокам СИ "часть2"

Скажите правильно ли я понимаю данную строку.

Код:
char f1()
{
    return GPIO;
}

while((x=f1())==0);
Сначала x инициируется f1() и затем проверяется истинность x, для меня главное что бы x инициировался таким образом, и что бы при сборке в другом компиляторе это тоже работало.
alexandr_p вне форума   Ответить с цитированием
Старый 13.10.2017, 13:26   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: вопрос знатокам СИ "часть2"

alexandr_p
while((x=f1())==0); - приоритет операций в языке Си.
самый высокий - вызов функции.
пониже сравнение.

большинство компиляторов выдадут Вам предупреждение об assigment in condition, значительное число соding rules требуют куда как более простого исполнения Вашего замысла.
besogon вне форума   Ответить с цитированием
Старый 13.10.2017, 13:29   #6
CERGEI
Senior Member
 
Аватар для CERGEI
 
Регистрация: 11.07.2009
Возраст: 35
Сообщений: 518
Вес репутации: 183/37
CERGEI has a spectacular aura aboutCERGEI has a spectacular aura about
По умолчанию Re: вопрос знатокам СИ "часть2"

А GPIO это что?
CERGEI вне форума   Ответить с цитированием
Старый 13.10.2017, 13:44   #7
alexandr_p
Junior Member
 
Регистрация: 16.05.2014
Возраст: 23
Сообщений: 28
Вес репутации: 131/14
alexandr_p will become famous soon enoughalexandr_p will become famous soon enough
По умолчанию Re: вопрос знатокам СИ "часть2"

Цитата:
Сообщение от besogon Посмотреть сообщение
большинство компиляторов выдадут Вам предупреждение об assigment in condition, значительное число соding rules требуют куда как более простого исполнения Вашего замысла.
мне ни какой компилятор не выдал варнинг на такое, если предложите более простой вариант будет интересно.
alexandr_p вне форума   Ответить с цитированием
Старый 13.10.2017, 13:46   #8
alexandr_p
Junior Member
 
Регистрация: 16.05.2014
Возраст: 23
Сообщений: 28
Вес репутации: 131/14
alexandr_p will become famous soon enoughalexandr_p will become famous soon enough
По умолчанию Re: вопрос знатокам СИ "часть2"

Цитата:
Сообщение от CERGEI Посмотреть сообщение
А GPIO это что?
это для примера, на месте GPIO может быть любой регистр или переменная.
alexandr_p вне форума   Ответить с цитированием
Старый 13.10.2017, 13:47   #9
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: вопрос знатокам СИ "часть2"

Цитата:
Сообщение от CERGEI Посмотреть сообщение
А GPIO это что?
Порт ввода-вывода в PIC12....
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 13.10.2017, 13:51   #10
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: вопрос знатокам СИ "часть2"

Цитата:
Сообщение от alexandr_p Посмотреть сообщение
мне ни какой компилятор не выдал варнинг на такое, если предложите более простой вариант будет интересно.
не простой, но более понятный
Код:
do{
 x = f();
}
while(x==0)
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 13.10.2017, 14:05   #11
CERGEI
Senior Member
 
Аватар для CERGEI
 
Регистрация: 11.07.2009
Возраст: 35
Сообщений: 518
Вес репутации: 183/37
CERGEI has a spectacular aura aboutCERGEI has a spectacular aura about
По умолчанию Re: вопрос знатокам СИ "часть2"

Уводишь в ступор камень,лучше флагом каким нибудь выставь и дойдя до проверки флага сделать что то нужное
CERGEI вне форума   Ответить с цитированием
Старый 13.10.2017, 14:09   #12
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: вопрос знатокам СИ "часть2"

Код:
while((x=f1())==0)
допустим. однако в целом все это безусловно требует анализа use-case
функции f1. если это действительно gpio, то вряд-ли трезвая идея использовать такую организацию цикла в целом.

Код:
/*ugly loop*/
for(uf x = f1(); !x; x = f1())
{
/*do something*/
}
besogon вне форума   Ответить с цитированием
Старый 13.10.2017, 14:16   #13
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: вопрос знатокам СИ "часть2"

вообще тема getterов и setterов в младших восьмибитниках сусолилась уже много раз и куда как более на высоком уровне.

в двух словах - начинающим и средним вряд-ли стоит использовать getterы и setterы в младших восьмибитниках.
(можно заканчивающим, тк. там запрещать впустую. все равно голоса в голове заставляют писать адовы коды).

еще пару слов про циклы, раз уж речь о них пошла.
современные компиляторы умеют более менее оптимизировать код для циклов. нет большого смысла впадать в амок.
besogon вне форума   Ответить с цитированием
Старый 13.10.2017, 14:32   #14
alexandr_p
Junior Member
 
Регистрация: 16.05.2014
Возраст: 23
Сообщений: 28
Вес репутации: 131/14
alexandr_p will become famous soon enoughalexandr_p will become famous soon enough
По умолчанию Re: вопрос знатокам СИ "часть2"

Цитата:
Сообщение от besogon Посмотреть сообщение
еще пару слов про циклы, раз уж речь о них пошла.
современные компиляторы умеют более менее оптимизировать код для циклов. нет большого смысла впадать в амок.
Возможно вопрос не очень понятно изложил, мне хотелось бы узнать можно ли в СИ таким способом инициировать переменные. если нет то почему?
alexandr_p вне форума   Ответить с цитированием
Старый 13.10.2017, 14:48   #15
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: вопрос знатокам СИ "часть2"

alexandr_p
можно ли в СИ таким способом инициировать переменные - синтаксически - можно. синтаксис не запрещает.

в целом это плохая идея в силу того, что программисты в своих кругах сговариваются о том, как будем и как не будем писать код, чтобы потом вопросов было меньше.

так вот - сговорились писать по возможности без этого вот всего.
besogon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знатокам Си, помогите разобраться kotlyara Продукция MICROCHIP 8 15.06.2010 09:08
Вопрос по Си. Mario Продукция MICROCHIP 18 19.08.2007 21:55
Очередной вопрос по Си Andrey Продукция MICROCHIP 5 24.05.2007 20:01
вопрос по Си ОлегИ Продукция MICROCHIP 6 11.04.2007 12:59
Вопрос новичка по Си ramonchik Продукция MICROCHIP 3 05.03.2007 16:28


Часовой пояс GMT +3, время: 13:05.


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