Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 02.04.2017, 12:44  
Aselicon
Прохожий
 
Регистрация: 01.09.2011
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Aselicon на пути к лучшему
По умолчанию CVAVR порча переменных

добрый день! пишу проект в cvavr. Проблем вагончик, во первых, если не отключить в настройках компилятора Automatic Global Register Allocation, то значения некоторых переменных при одном из переходов становятся = 0. Если отключить, то на первый взгляд, все ок, однако при ближайшем рассмотрении можно заметить следующее: при смене последовательности объявления глобальных переменных, изменяются значения оных на 0.
получается Automatic Global Register Allocation просто смешает часть переменных в другую область памяти, а новые переменные, которые попадают в "битые ячейки" снова тупят. К слову, пробовал volatile, изменения настроек компилятора, более старую версию, ничего не помогает.
Уже были мысли пересесть наконец на atmelStudio, вроде как и повод есть, но телега получилась большая, перетаскивать не хочется, переходить, так с нового проекта уже.
Свой быдлокод пока не выкладываю, особо ничего интересного.
Помогите чем сможете

и да, отладка в железе, контроллер Atmega168pa
Реклама:

Последний раз редактировалось Aselicon; 02.04.2017 в 12:47.
Aselicon вне форума  
Непрочитано 02.04.2017, 12:56  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,329
Сказал спасибо: 85
Сказали Спасибо 595 раз(а) в 361 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: CVAVR порча переменных

Сообщение от Aselicon Посмотреть сообщение
Свой быдлокод пока не выкладываю, особо ничего интересного.
Ну а без этого никто ничем не поможет, т.к. нет никакой информации.
pambaru вне форума  
Непрочитано 02.04.2017, 13:40  
Aselicon
Прохожий
 
Регистрация: 01.09.2011
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Aselicon на пути к лучшему
По умолчанию Re: CVAVR порча переменных

код
Нажмите, чтобы открыть спойлер
Код:
/**************************************************  *****
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : Invertor
Version : 0.1
Date    : 22.02.2017
Author  : 
Company : 
Comments: 


Chip type               : ATmega168PA
Program type            : Application
AVR Core Clock frequency: 4,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
**************************************************  *****/

#include ‹mega168a.h›
#include ‹string.h›
#include ‹alcd.h›
#include ‹stdio.h›

 
 unsigned char button;        //счетчик антидребезг
 unsigned char pressedKey; //вспомогательная переменная для работы с кнопками
 unsigned int comp;                //вспомогательная переменная для работы с кнопками
 unsigned char b;                  //
 unsigned char beep_180;            //
 unsigned char beep_rad;           //пищалка
 unsigned char ind;
 unsigned char state; 
 unsigned char expert_state;        //перемещение по экранам
 unsigned char avto_180;            //
 unsigned char avto_rad;            //
 unsigned char cycle;                //режим работы, текущий цикл
 unsigned char way;                  //направление вращения
 unsigned char res;                  //сброс на главный экран через 15сек
 unsigned char brake;               //задержка для запуска
 unsigned char sim;                 //символ паузы
 unsigned int freq;                 //
 unsigned int auto_freq_180;         //частота для загрузки в частотник
 unsigned int af_180;
 unsigned int avto_f_180;           //авто частота для 180 
 unsigned int freq_180;            //частота 180
 unsigned char temp_pcb;             //температура платы
 unsigned char tx_narast;           //время нарастания
 unsigned char tx_brake;            //время торможения
 unsigned char tx_current;          //токовая защита   
 unsigned char buffer[16];     //буффер для вывода на дисплей
 unsigned char tic;           //вспомогательная переменная для работы с секундами
 unsigned char tip;           //тип программы (180/радиалка)
 unsigned char version_chast; //версия частотного преобразователя содержится в виде десятков (1,2 = 12)
 unsigned int sec;            // секунды        
 unsigned int tic1;            // секунды  
         bit zapusk;               //первый запуск
         bit ok;                   //связь с частотником  
         bit bl;                   //мигание
         bit start;                //стартбит
         bit error;                //ошибка
         bit r;                    //разрешение индикации 
         bit revers_180;           //
         bit rev_180,rev_rad;      //реверсбит
         bit pause;                //пауза
         bit rev_a_r_180;          //автоматический реверс  
         bit q;                    //разрешение на отправку запроса температуры  
         bit expert;               //разрешение входа в экспертные опции
         

unsigned int time_180;
unsigned int avto_t_180;      //переменные для 180
unsigned int time2_180;
unsigned int freq2_180;
unsigned int time3_180;
unsigned int freq3_180; 
       
 
unsigned int time_rad;           //переменные для радиалки
unsigned int time0_rad;
unsigned int time1_rad;
unsigned int time2_rad;
unsigned int time3_rad;
unsigned int time4_rad;
unsigned int time5_rad;
unsigned int freq0_rad;
unsigned int freq1_rad;
unsigned int freq2_rad;
unsigned int freq3_rad;
unsigned int freq4_rad;
unsigned int freq5_rad;

eeprom unsigned int  eep_time0_rad; 
eeprom unsigned int  eep_time1_rad; 
eeprom unsigned int  eep_time2_rad; 
eeprom unsigned int  eep_time3_rad; 
eeprom unsigned int  eep_time4_rad;
eeprom unsigned int  eep_time5_rad;

eeprom unsigned int  eep_freq0_rad;
eeprom unsigned int  eep_freq1_rad;
eeprom unsigned int  eep_freq2_rad;
eeprom unsigned int  eep_freq3_rad;
eeprom unsigned int  eep_freq4_rad;
eeprom unsigned int  eep_freq5_rad;

eeprom unsigned char eep1_avto_rad; 
eeprom unsigned char eep2_avto_rad; 

eeprom unsigned char eep_rev_rad ;

eeprom unsigned char eep_beep_rad ;
//
eeprom unsigned int  eep1_time_180 ;
eeprom unsigned int  eep2_time_180 ;
eeprom unsigned int  eep1_freq_180 ;
eeprom unsigned int  eep2_freq_180 ;

eeprom unsigned int  eep_freq2_180;
eeprom unsigned int  eep_freq3_180;
eeprom unsigned int  eep_time2_180;
eeprom unsigned int  eep_time3_180;

eeprom unsigned char eep1_avto_180 ;
eeprom unsigned char eep2_avto_180 ;

eeprom unsigned char eep1_beep_180 ;
eeprom unsigned char eep2_beep_180 ;

eeprom unsigned int eep_avto_t_180 ;
eeprom unsigned int eep_avto_f_180 ;

eeprom unsigned char eep_rev_a_r_180;
eeprom unsigned char eep_tip;

eeprom unsigned char eep_tx_narast;
eeprom unsigned char eep_tx_brake;
eeprom unsigned char eep_tx_current;

       unsigned char eep_error;



#define VERSION_PU lcd_putsf("ЁЇMav0.1");  //текущая версия пульта     

#define but_star PIND.2      
#define but_stop PINB.4      
#define but_paus PINB.5      
#define but_decr PINC.2      
#define but_sett PINC.1      
#define but_incr PINC.0     
//#define heater_stenka    PORTD.3
//#define heater_dno       PORTD.4
#define beep_out         PORTC.3      //Buzzer


#define   decr  1
#define   sett  2
#define   incr  3
#define   star  4
#define   stop  5
#define   paus  6
#define   korr  7
#define   long_stop  8
#define   long_sett  9
#define   null  0

#define home ind=2; state=1;

#define THRESHOLD 2
#define THRESHOLD_LONG_PRESS 40
#define THRESHOLD_LONG_LONG_PRESS 60
#define THRESHOLD2 8
#define THRESHOLD_GO 5 



#define DATA_REGISTER_EMPTY (1‹‹UDRE0)
#define RX_COMPLETE (1‹‹RXC0)
#define FRAMING_ERROR (1‹‹FE0)
#define PARITY_ERROR (1‹‹UPE0)
#define DATA_OVERRUN (1‹‹DOR0)


typedef unsigned char byte; 
/* table for the user defined character 
arrow that points to the top right corner */ 
flash byte char0[8]={0x08, 0x09, 0x0A, 0x04, 0x08, 0x17, 0x07, 0x05}; 
flash byte char1[8]={0x08, 0x09, 0x0A, 0x04, 0x08, 0x17, 0x07, 0x05};
flash byte char2[8]={0x08, 0x0C, 0x0E, 0x1F, 0x0E, 0x0C, 0x08, 0x00};
flash byte char3[8]={0x02, 0x06, 0x0E, 0x1F, 0x0E, 0x06, 0x02, 0x00};
flash byte char4[8]={0x00, 0x00, 0x0A, 0x00, 0x00, 0x0E, 0x11, 0x00};
flash byte char5[8]={0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00}; //pause
flash byte char6[8]={0x00, 0x08, 0x0C, 0x0E, 0x0C, 0x08, 0x00, 0x00}; //play
flash byte char7[8]={0x08, 0x14, 0x08, 0x02, 0x05, 0x04, 0x05, 0x02};
/* function used to define user characters */ 

void define_char(byte flash *pc,byte char_code) 
{ 
byte i,a; 
a=(char_code‹‹3) | 0x40; 
for (i=0; i‹8; i++) lcd_write_byte(a++,*pc++); 
}

void eeptoflash(void)                            //Функция переноса данных из ЕЕР в рабочее пространство
  { 
   if ((eep1_time_180›=5)&&(eep1_time_180‹=995)&&(eep1_time_180==eep2_time_180)&&(eep1_freq_180›=1)&&(eep1_freq_180‹=60)&&(eep1_avto_rad‹=10)) {} 
     else {eep_error=1;}   
        
  if (eep_error==0)
    { avto_t_180=eep_avto_t_180;
      avto_f_180=eep_avto_f_180;
      time_180=eep1_time_180;                      
      freq_180=eep1_freq_180; 
      
      time2_180=eep_time2_180;                      
      freq2_180=eep_freq2_180;
      time3_180=eep_time3_180;                      
      freq3_180=eep_freq3_180;
                           
      avto_180=eep1_avto_180;
      rev_a_r_180=eep_rev_a_r_180;                      
      beep_180=eep1_beep_180; 
      
      time0_rad=eep_time0_rad;  
      time1_rad=eep_time1_rad;
      time2_rad=eep_time2_rad;
      time3_rad=eep_time3_rad;
      time4_rad=eep_time4_rad; 
      time5_rad=eep_time5_rad; 
      
      freq0_rad=eep_freq0_rad;            
      freq1_rad=eep_freq1_rad;
      freq2_rad=eep_freq2_rad;
      freq3_rad=eep_freq3_rad;
      freq4_rad=eep_freq4_rad;
      freq5_rad=eep_freq5_rad;
      tip=eep_tip;                      
      avto_rad=eep1_avto_rad;
      rev_rad=eep_rev_rad;          
      beep_rad=eep_beep_rad;
      
      tx_narast=eep_tx_narast;
      tx_brake=eep_tx_brake;
      tx_current=eep_tx_current; 
    }      
   else
    {#asm("cli")
     eep1_time_180=25;
     eep2_time_180=25;
     eep1_freq_180=40;
     eep2_freq_180=40;
     eep1_avto_180=1;
     eep2_avto_180=1;
     eep_rev_a_r_180=0;
     eep_avto_t_180=5;
     eep_avto_f_180=20;
     
     eep_time2_180=5;
     eep_freq2_180=20;
     eep_time3_180=5;
     eep_freq3_180=20;
     
     eep1_beep_180=3;
     eep2_beep_180=3;
     
     
     eep_time0_rad=100;
     eep_time1_rad=25;  
     eep_time2_rad=25;
     eep_time3_rad=25;
     eep_time4_rad=25;     
     eep_time5_rad=25;
     
     eep_freq0_rad=50;
     eep_freq1_rad=16;   
     eep_freq2_rad=24;
     eep_freq3_rad=28;
     eep_freq4_rad=32;
     eep_freq5_rad=46;
     
     eep1_avto_rad=0;
     eep2_avto_rad=0; 
     
     eep_rev_rad=0;

     eep_beep_rad=3;
     eep_tip=0;  
     
     eep_tx_narast=10;
     eep_tx_brake=6;
     eep_tx_current=50; 
     
     #asm("sei")
      
      avto_t_180=eep_avto_t_180;
      avto_f_180=eep_avto_f_180; 
      
      time2_180=eep_time2_180;                      
      freq2_180=eep_freq2_180;
      time3_180=eep_time3_180;                      
      freq3_180=eep_freq3_180;
      
      time_180=eep1_time_180;                      
      freq_180=eep1_freq_180;                      
      avto_180=eep1_avto_180;
      rev_a_r_180=eep_rev_a_r_180;                      
      beep_180=eep1_beep_180;  
                               
      
      time0_rad=eep_time0_rad;
      time1_rad=eep_time1_rad;
      time2_rad=eep_time2_rad;
      time3_rad=eep_time3_rad;
      time4_rad=eep_time4_rad;
      time5_rad=eep_time5_rad;
               
      freq0_rad=eep_freq0_rad;  
      freq1_rad=eep_freq1_rad;  
      freq2_rad=eep_freq2_rad;  
      freq3_rad=eep_freq3_rad;  
      freq4_rad=eep_freq4_rad;  
      freq5_rad=eep_freq5_rad;  
      rev_rad=eep_rev_rad;
      avto_rad=eep1_avto_rad;
      beep_rad=eep_beep_rad; 
      tip=eep_tip; 
      
     tx_narast=eep_tx_narast;
     tx_brake=eep_tx_brake;
     tx_current=eep_tx_current;
     }  
                
   }
   
//-------------------------------------------------------------------------------------------------------------- 
 void flashtoeep(void)                       //Функция переноса данных из рабочего пространства в EEP
   {  
   #asm("cli")
     eep1_time_180=time_180;
     eep2_time_180=time_180;
     eep1_freq_180=freq_180;
     eep2_freq_180=freq_180;
     eep1_avto_180=avto_180;
     eep2_avto_180=avto_180;
     eep_rev_a_r_180=rev_a_r_180; 
     eep_avto_t_180=avto_t_180;
     eep_avto_f_180=avto_f_180;   
     
     eep_time2_180=time2_180;
     eep_freq2_180=freq2_180;
     eep_time3_180=time3_180;
     eep_freq3_180=freq3_180;
     
     eep1_beep_180=beep_180;
     eep2_beep_180=beep_180;  
     
     
     eep_time0_rad=time0_rad;
     eep_time1_rad=time1_rad;  
     eep_time2_rad=time2_rad;
     eep_time3_rad=time3_rad;
     eep_time4_rad=time4_rad;
     eep_time5_rad=time5_rad;
     
     eep_freq0_rad=freq0_rad;
     eep_freq1_rad=freq1_rad;   
     eep_freq2_rad=freq2_rad;
     eep_freq3_rad=freq3_rad;
     eep_freq4_rad=freq4_rad;
     eep_freq5_rad=freq5_rad;
     
     eep1_avto_rad=avto_rad;
     eep2_avto_rad=avto_rad; 
     
     eep_rev_rad=rev_rad;  
     eep_beep_rad=beep_rad; 
     
   #asm("sei")  
   }  


// USART Receiver buffer
#define RX_BUFFER_SIZE0 8
char rx_buffer0[RX_BUFFER_SIZE0];

#if RX_BUFFER_SIZE0 ‹= 256
unsigned char rx_wr_index0=0,rx_rd_index0=0;
#else
unsigned int rx_wr_index0=0,rx_rd_index0=0;
#endif

#if RX_BUFFER_SIZE0 ‹ 256
unsigned char rx_counter0=0;
#else
unsigned int rx_counter0=0;
#endif

// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow0;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSR0A;
data=UDR0;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
   rx_buffer0[rx_wr_index0++]=data;
#if RX_BUFFER_SIZE0 == 256
   // special case for receiver buffer size=256
   if (++rx_counter0 == 0) rx_buffer_overflow0=1;
#else
   if (rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;
   if (++rx_counter0 == RX_BUFFER_SIZE0)
      {
      rx_counter0=0;
      rx_buffer_overflow0=1;
      }
#endif
   }
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter0==0);
data=rx_buffer0[rx_rd_index0++];
#if RX_BUFFER_SIZE0 != 256
if (rx_rd_index0 == RX_BUFFER_SIZE0) rx_rd_index0=0;
#endif
#asm("cli")
--rx_counter0;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART Transmitter buffer
#define TX_BUFFER_SIZE0 8
char tx_buffer0[TX_BUFFER_SIZE0];

#if TX_BUFFER_SIZE0 ‹= 256
unsigned char tx_wr_index0=0,tx_rd_index0=0;
#else
unsigned int tx_wr_index0=0,tx_rd_index0=0;
#endif

#if TX_BUFFER_SIZE0 ‹ 256
unsigned char tx_counter0=0;
#else
unsigned int tx_counter0=0;
#endif

// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter0)
   {
   --tx_counter0;
   UDR0=tx_buffer0[tx_rd_index0++];
#if TX_BUFFER_SIZE0 != 256
   if (tx_rd_index0 == TX_BUFFER_SIZE0) tx_rd_index0=0;
#endif
   }
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter0 == TX_BUFFER_SIZE0);
#asm("cli")
if (tx_counter0 || ((UCSR0A & DATA_REGISTER_EMPTY)==0))
   {
   tx_buffer0[tx_wr_index0++]=c;
#if TX_BUFFER_SIZE0 != 256
   if (tx_wr_index0 == TX_BUFFER_SIZE0) tx_wr_index0=0;
#endif
   ++tx_counter0;
   }
else
   UDR0=c;
#asm("sei")
}
#pragma used-
#endif

 void ZAPUSK1 (void)
 {
  switch (state) {
  case 0:
    {
    putchar(0xFA);
    if(getchar()==0xFE) {
     version_chast=getchar();}


    if (sec‹2) {lcd_gotoxy(0,0); lcd_putsf("  Ёpoј          ");
                if (button==star) {state=90;}} //  
                
       else {    if ((version_chast‹100)&&(version_chast›=1)){ok=1; lcd_gotoxy(0,0); VERSION_PU sprintf(buffer,"   bv%1d.%1d",(version_chast/10),(version_chast%10)); lcd_gotoxy(0,1);lcd_puts(buffer);} 
                   else {lcd_gotoxy(0,0); lcd_putsf("  Heї    cіЗ·ё! ");}
            }                                                             
            
    
    if ((sec›=2)&&(ok)) {ind=2; zapusk=1;state=1;}  
    if (button==stop) {ok=1;}
    break; 
    }  
       
  case 90:                                       //SET тип прошивки
    { 
    if(button==decr) {res=0; if (tip›0) {tip--;}}       //tip=0 -- 180
    if(button==sett) {res=0; }                          //tip=1 -- радиал
    if(button==incr) {res=0; if (tip‹1) {tip++;}}
    if(button==stop) {eep_tip=tip; state=0; sec=2;} 
    if (tip==0) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  180     ");}   //180 
    if (tip==1) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  Paгёa»  ");}   // Радиал 
    break;    
    } 
    }  
 }   
 

void FUNC_180 (void)
{
switch (state) {

  case 1:                                      //MAIN
    {
    if ((start)&&(avto_180==2))
     {if (cycle==0){
      if(button==decr) {if ((avto_f_180›16)) {avto_f_180--;}}
      if(button==incr) {if ((avto_f_180‹60)) {avto_f_180++;}} }
      
      if (cycle==1){
      if(button==decr) {if ((freq2_180›16)) {freq2_180--;}}
      if(button==incr) {if ((freq2_180‹60)) {freq2_180++;}} }
      
      if (cycle==2){
      if(button==decr) {if ((freq3_180›16)) {freq3_180--;}}
      if(button==incr) {if ((freq3_180‹60)) {freq3_180++;}} }
      
      if(button==stop) {start=0; cycle=0; rev_180=0; revers_180=0; putchar(0xA0);putchar(0x00);}
     }   
     
    else { 
    if(button==decr) {if ((freq_180›16)&&(start)&&(avto_180!=2)) {freq_180--;}}
    if(button==incr) {if ((freq_180‹60)&&(start)&&(avto_180!=2)) {freq_180++;}}}
    if(button==sett) {if (start==0) {ind=3; state=2;}} 
    if(button==star) {if (start==0) {way=1;start=1;sec=0;}}
    if(button==stop) {start=0; cycle=0; rev_180=0; revers_180=0; putchar(0xA0);putchar(0x00);}
    if(button==paus) {if (start==0) {way=2;start=1;sec=0;}}    
    break; 
    } 
     
  case 2:                                       //SET AVTO
    { 
    if(button==decr) {res=0; if (avto_180›1) {avto_180--;}}  
    if(button==sett) {res=0; if ((avto_180==0)||(avto_180==3)) { ind=4; state=3;} if (avto_180==2) {ind=41; state=41;} if (avto_180==1) {ind=4; state=3;}}  
    if(button==incr) {res=0; if (avto_180‹3) {avto_180++;}}
    if(button==stop) {flashtoeep(); home}
    break;    
    }   
  case 3:                                       //SET TIME
    { 
    if(button==decr) {res=0; if (time_180›10) {time_180-=5;}}
    if(button==sett) {res=0; ind=5; state=4;}
    if(button==incr) {res=0; if (time_180‹=990){time_180+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 4:                                       //SET SPEED
    { 
    if(button==decr) {res=0; if (freq_180›16) {freq_180--;}}
    if(button==sett) {res=0; if (avto_180==3) {ind=7; state=6;} else {ind=6; state=5;}}
    if(button==incr) {res=0; if (freq_180‹60){freq_180++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }  
    

  case 41:                                       //SET AVTO3 time
    { 
    if(button==decr) {res=0; if (avto_t_180›5) {avto_t_180-=5;}}  
    if(button==sett) {res=0;  ind=42; state=42;}  
    if(button==incr) {res=0; if (avto_t_180‹990) {avto_t_180+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 42:                                       //SET AVTO3 freq
    { 
    if(button==decr) {res=0; if (avto_f_180›16) {avto_f_180--;}}  
    if(button==sett) {res=0; ind=43; state=43;}  
    if(button==incr) {res=0; if (avto_f_180‹60) {avto_f_180++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }    
    
  case 43:                                       //SET time 2
    { 
    if(button==decr) {res=0; if (time2_180›5) {time2_180-=5;}}  
    if(button==sett) {res=0;  ind=44; state=44;}  
    if(button==incr) {res=0; if (time2_180‹990) {time2_180+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 44:                                       //SET  freq 3
    { 
    if(button==decr) {res=0; if (freq2_180›16) {freq2_180--;}}  
    if(button==sett) {res=0; ind=45; state=45;}  
    if(button==incr) {res=0; if (freq2_180‹60) {freq2_180++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }  
   
  case 45:                                       //SET AVTO3 time
    { 
    if(button==decr) {res=0; if (time3_180›5) {time3_180-=5;}}  
    if(button==sett) {res=0;  ind=46; state=46;}  
    if(button==incr) {res=0; if (time3_180‹990) {time3_180+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 46:                                       //SET AVTO3 freq
    { 
    if(button==decr) {res=0; if (freq3_180›16) {freq3_180--;}}  
    if(button==sett) {res=0; ind=6; state=5;}  
    if(button==incr) {res=0; if (freq3_180‹60) {freq3_180++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }  
    
  case 5:                                       //SET rev
    { 
    if(button==decr) {res=0; if (rev_a_r_180›0) {rev_a_r_180--;}}  
    if(button==sett) {res=0; ind=7; state=6;}  
    if(button==incr) {res=0; if (rev_a_r_180‹1) {rev_a_r_180++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }   
    
  case 6:                                       //SET BUZZER
    { 
    if(button==decr) {res=0; if (beep_180›0) {beep_180--;}}
    if((button==sett)||(button==stop)) {res=0; flashtoeep(); home}
    if(button==incr) {res=0; if (beep_180‹9) {beep_180++;}}
   // if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 10:                                     //PROTECT
    { 

    if(button==stop) {putchar(0xA0);putchar(0x00);home}
    break; 
    } 

    }
}

void INDICATION_180 (void)
{
switch (ind) {
          
   
    case 2:
    {
    //if (error) {lcd_gotoxy(0,0); lcd_putsf("*O¬Ґ*KA*");
    //           sprintf(buffer,"   %2x   ",error); lcd_gotoxy(0,1);lcd_puts(buffer);}
    // else{
     if (revers_180) {
                  if (rev_a_r_180==0)
                                 {
                                  lcd_gotoxy(0,0); 
                                  lcd_putsf("Peіepc");
                                  if (bl){lcd_gotoxy(6,0);lcd_putchar(0x02);lcd_putchar  (0x03); }
                                    else {lcd_gotoxy(6,0); lcd_puts("  ");}
                                  if ((cycle==0)&&(avto_180==2)) {sprintf(buffer,"     %2dc",20-brake);}
                                                        else {sprintf(buffer,"     %2dc",20-brake);}
                                  lcd_gotoxy(0,1);
                                  lcd_puts(buffer);
                                 }    
                            else 
                                 {
                                  lcd_gotoxy(0,0); 
                                  lcd_putsf("Peіepc  O¶ёгaЅёe");
                                 }      
                  }     
           else {       
      if (start) {//Верхняя строка 
                  if (avto_180==0) {lcd_gotoxy(0,0); lcd_putsf("PA*OTA");}
                  if (avto_180==1) 
                     {
                      if (rev_180) {lcd_gotoxy(0,0); lcd_putsf("бёє» 2/2");}
                          else {lcd_gotoxy(0,0); lcd_putsf("бёє» 1/2");}  
                     }
                  if (avto_180==2) 
                    {
                     if (cycle==0) {
                                    lcd_gotoxy(0,0); lcd_putsf("бёє» 1/3"); 
                                    if (sec‹=(avto_t_180*3)) {auto_freq_180=(((avto_f_180-10)*sec)/(avto_t_180*3))+10;}
                                                    else {auto_freq_180=avto_f_180;}      
                                   } 
                                     
                     if (cycle==1) {
                                    lcd_gotoxy(0,0); lcd_putsf("бёє» 2/3");  
                                    auto_freq_180=freq2_180;
                                   }
                                   
                     if (cycle==2) {
                                    lcd_gotoxy(0,0); lcd_putsf("бёє» 3/3");
                                    auto_freq_180=freq3_180; 
                         
                                   }
                    }
                  if (avto_180==3) {lcd_gotoxy(0,0); lcd_putsf("PA*OTA"); auto_freq_180=(((freq_180-10)*sec)/(time_180*6))+10;} 


                  //Нижняя строка             
                  if ((bl)&&((avto_180==0)||(avto_180==3)))
                  {
                  if ((way==1)&&((avto_180==0)||(avto_180==3))) {lcd_gotoxy(6,0);lcd_putchar(0x03);lcd_putchar(0x2  D);} 
                  if ((way==2)&&((avto_180==0)||(avto_180==3))) {lcd_gotoxy(6,0);lcd_putchar(0x2D);lcd_putchar(0x0  2);}
                  }
                  if ((!bl)&&((avto_180==0)||(avto_180==3))) {lcd_gotoxy(6,0); lcd_puts("  ");}

                  
                  if (avto_180==2){if(cycle==0) sprintf(buffer, "%3d",(unsigned int)avto_f_180*5); 
                               if(cycle==1) sprintf(buffer, "%3d",(unsigned int)freq2_180*5);
                               if(cycle==2) sprintf(buffer, "%3d",(unsigned int)freq3_180*5);}
                                      else {sprintf(buffer, "%3d",(unsigned int)freq_180*5); }
                  lcd_gotoxy(0,1);                                               
                  lcd_puts(buffer);
                  lcd_gotoxy(3,1);
                  lcd_putchar(0x01);
                  
                  //времени
                 if ((cycle==0)&&(avto_180==2)) {sprintf(buffer," %2dc",((avto_t_180*6)-sec)); lcd_gotoxy(4,1);lcd_puts(buffer);} //30-sec
                
                 if ((cycle==2)&&(avto_180==2)) {if ((time3_180*6)-sec›=90) {sprintf(buffer," %2d",(((time3_180*6)-sec)/60)+1); lcd_gotoxy(4,1);lcd_puts(buffer);lcd_putchar(0xBC)  ;}
                                 else   {sprintf(buffer," %2dc",(time3_180*6)-sec); lcd_gotoxy(4,1);lcd_puts(buffer);}}
                                 
                 if ((cycle==1)&&(avto_180==2)){
                   if ((time2_180*6)-sec›=90) {sprintf(buffer," %2d",(((time2_180*6)-sec)/60)+1); lcd_gotoxy(4,1);lcd_puts(buffer);lcd_putchar(0xBC)  ;}
                                 else   {sprintf(buffer," %2dc",(time2_180*6)-sec); lcd_gotoxy(4,1);lcd_puts(buffer);}}  
                                 
                 if ((avto_180==1)||(avto_180==3)) {if ((time_180*6)-sec›=90) {sprintf(buffer," %2d",(((time_180*6)-sec)/60)+1); lcd_gotoxy(4,1);lcd_puts(buffer);lcd_putchar(0xBC)  ;}
                                 else   {sprintf(buffer," %2dc",(time_180*6)-sec); lcd_gotoxy(4,1);lcd_puts(buffer);}}               
                  
                    } //Работа
                        
       else     {lcd_gotoxy(0,0); lcd_putsf("Cїoѕ  ");
                  if (way==0) {lcd_gotoxy(6,0);lcd_putchar(0x03);lcd_putchar(0x0  2);} 
                  if (way==1) {lcd_gotoxy(6,0);lcd_putchar(0x03);lcd_putchar(0x2  D);} 
                  if (way==2) {lcd_gotoxy(6,0);lcd_putchar(0x2D);lcd_putchar(0x0  2);} 
                    
                  if (avto_180==0) {lcd_gotoxy(0,1); lcd_puts("PyАЅo№  ");}   // Ручной                  
                  if (avto_180==1) {lcd_gotoxy(0,1); lcd_puts("2 бёє»a ");}   // Автомат2
                  if (avto_180==2) {lcd_gotoxy(0,1); lcd_puts("3 бёє»a ");}   // Автомат3
                  if (avto_180==3) {lcd_gotoxy(0,1); lcd_puts("Paгёa»  ");}   // Радиал

                  }    
     }  
    break; 
    }
    
    case 3:
    {
    if (avto_180==0) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  PyАЅo№  ");}  //Автомат
    if (avto_180==1) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  2 бёє»a ");}  //2 Цикла 
    if (avto_180==2) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  3 бёє»a ");}  //3 Цикла 
    if (avto_180==3) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  Paгёa»  ");}   // Радиал 
    break; 
    }      
    
    case 4:
    { 
    lcd_gotoxy(0,0); lcd_puts("BpeјЗ   ");            //Время
    sprintf(buffer, " %2d.",time_180/10); lcd_gotoxy(0,1);lcd_puts(buffer);
    sprintf(buffer, "%1dјёЅ",time_180%10);  lcd_gotoxy(4,1);lcd_puts(buffer); 
    break; 
    } 
    
    case 5:
    { 
    lcd_gotoxy(0,0); lcd_puts("CєopocїД");          //Скорость
    sprintf(buffer,"    %3d  ",freq_180*5);
                  lcd_gotoxy(0,1);
                  lcd_puts(buffer);
                  lcd_gotoxy(7,1);
                  lcd_putchar(0x01);
    break; 
    }
    
  

    case 42:
    { 
    sprintf(buffer,"CєopocїД1е  %3d%c ",avto_f_180*5,0x01);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    } 
    
    case 41:
    { 
    sprintf(buffer,"BpeјЗ   1е %2d.%1dј",avto_t_180/10,avto_t_180%10);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    }  
    
    case 44:
    { 
    sprintf(buffer,"CєopocїД2е  %3d%c ",freq2_180*5,0x01);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    } 
    
    case 43:
    { 
    sprintf(buffer,"BpeјЗ   2е %2d.%1dј",time2_180/10,time2_180%10);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    } 
    
    case 46:
    { 
    sprintf(buffer,"CєopocїД3е  %3d%c ",freq3_180*5,0x01);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    } 
    
    case 45:
    { 
    sprintf(buffer,"BpeјЗ   3е %2d.%1dј",time3_180/10,time3_180%10);
    lcd_gotoxy(0,0);lcd_puts(buffer);             
    break; 
    } 
    
    case 6:
    {
    if (rev_a_r_180==0) {lcd_gotoxy(0,0); lcd_puts("Peіepc: Aіїoјaї ");}  //Реверсирование
    if (rev_a_r_180==1) {lcd_gotoxy(0,0); lcd_puts("Peіepc: PyАЅo№  ");} 

    break; 
    }
    
    case 7:
    { 
    lcd_gotoxy(0,0); lcd_puts("CёґЅa»  ");          //Сигнал 
    sprintf(buffer, "       %1d ",beep_180); lcd_gotoxy(0,1);lcd_puts(buffer);
    break; 
    }

    case 10:
    { 
    if (error!=0) {lcd_gotoxy(0,0); lcd_putsf("*O¬Ґ*KA*");}
         else {lcd_gotoxy(6,1); lcd_putsf("OK");}       
    break; 
    }
    
    }; 
} 

void FUNC_RADIAL (void)
{
switch (state) {
          
    
  case 1:                                      //MAIN
    { 
    if(button==decr) {if ((freq1_rad›16)&&(start)&&(avto_rad==1)) {freq1_rad--;}}
    if(button==sett) {if (start==0) {ind=3; state=2;}}   
    if(button==incr) {if ((freq1_rad‹60)&&(start)&&(avto_rad==1)) {freq1_rad++;}}
    if(button==star) {if (start==0) {start=1;sec=0;}}
    if(button==stop) {ind=2; state=1;start=0; cycle=0; putchar(0xA0);putchar(0x00);}
    if(button==paus) {if (start==1) {pause++;} }    
    break; 
    } 
  
  case 2:                                       //SET AVTO
    { 
    if(button==decr) {res=0; if (avto_rad›0) {avto_rad--;}}  
    if(button==sett) {res=0; if (avto_rad==0) { state=3;  ind=4;}
                                     else { state=4;  ind=5;} }  
    if(button==incr) {res=0; if (avto_rad‹5) {avto_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }     
        
  case 31:                                       //SET TIME0
    { 
    if(button==decr) {res=0; if (time0_rad›10) {time0_rad-=5;}}
    if(button==sett) {res=0; ind=13; state=12;}
    if(button==incr) {res=0; if (time0_rad‹=995){time0_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 3:                                       //SET SPEED0
    { 
    if(button==decr) {res=0; if (freq0_rad›16) {freq0_rad--;}}
    if(button==sett) {res=0; state=31;}
    if(button==incr) {res=0; if (freq0_rad‹60){freq0_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }   
    
  case 41:                                       //SET TIME1
    { 
    if(button==decr) {res=0; if (time1_rad›5) {time1_rad-=5;}}
    if(button==sett) {res=0; if (avto_rad›=2) {state=5; ind=6;} else {ind=13; state=12;}}
    if(button==incr) {res=0; if (time1_rad‹=995){time1_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 4:                                       //SET SPEED1
    { 
    if(button==decr) {res=0; if (freq1_rad›16) {freq1_rad--;}}
    if(button==sett) {res=0;  state=41;}
    if(button==incr) {res=0; if (freq1_rad‹60){freq1_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 51:                                       //SET TIME2
    { 
    if(button==decr) {res=0; if (time2_rad›5) {time2_rad-=5;}}
    if(button==sett) {res=0; if (avto_rad›=3) {state=6;ind=7;} else {ind=13; state=12;}}
    if(button==incr) {res=0; if (time2_rad‹=995){time2_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 5:                                       //SET SPEED2
    { 
    if(button==decr) {res=0; if (freq2_rad›16) {freq2_rad--;}}
    if(button==sett) {res=0; state=51;}
    if(button==incr) {res=0; if (freq2_rad‹60){freq2_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }  
    
  case 61:                                       //SET TIME3
    { 
    if(button==decr) {res=0; if (time3_rad›5) {time3_rad-=5;}}
    if(button==sett) {res=0;if (avto_rad›=4) {state=7;ind=8;} else {ind=13; state=12;}}
    if(button==incr) {res=0; if (time3_rad‹=995){time3_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 6:                                       //SET SPEED3
    { 
    if(button==decr) {res=0; if (freq3_rad›16) {freq3_rad--;}}
    if(button==sett) {res=0;  state=61;}
    if(button==incr) {res=0; if (freq3_rad‹60){freq3_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }   
    
  case 71:                                       //SET TIME4
    { 
    if(button==decr) {res=0; if (time4_rad›5) {time4_rad-=5;}}
    if(button==sett) {res=0;if (avto_rad›=5) {state=8;ind=9;} else {ind=13; state=12;}}
    if(button==incr) {res=0; if (time4_rad‹=995){time4_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 7:                                       //SET SPEED4
    { 
    if(button==decr) {res=0; if (freq4_rad›16) {freq4_rad--;}}
    if(button==sett) {res=0; state=71;} 
    if(button==incr) {res=0; if (freq4_rad‹60){freq4_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }   
    
  case 81:                                       //SET TIME5
    { 
    if(button==decr) {res=0; if (time5_rad›5) {time5_rad-=5;}}
    if(button==sett) {res=0;if (avto_rad›=6) {state=12;ind=13;} else {ind=13; state=12;}}  //9 10
    if(button==incr) {res=0; if (time5_rad‹=995){time5_rad+=5;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    } 
    
  case 8:                                       //SET SPEED5
    { 
    if(button==decr) {res=0; if (freq5_rad›16) {freq5_rad--;}}
    if(button==sett) {res=0; state=81;} 
    if(button==incr) {res=0; if (freq5_rad‹60){freq5_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }   
     
case 12:                                       //SET REVERS
    { 
    if(button==decr) {res=0; if (rev_rad›0) {rev_rad--;}}
    if(button==sett) {res=0; ind=14; state=13;}
    if(button==incr) {res=0; if (rev_rad‹1) {rev_rad++;}}
    if(button==stop) {flashtoeep(); home}
    break; 
    }    
    
  case 13:                                       //SET BUZZER
    { 
    if(button==decr) {res=0; if (beep_rad›0) {beep_rad--;}}
    if((button==sett)||(button==stop)) {res=0; flashtoeep(); home}
    if(button==incr) {res=0; if (beep_rad‹9) {beep_rad++;}}
    break; 
    } 
     
  case 123:                                     //PROTECT
    { 

    if(button==stop) {putchar(0xA0);putchar(0x00);home}
    break; 
    } 
   }
}

void INDICATION_RADIAL (void)
{
switch (ind) {
    case 0:       
      {     
                         sprintf(buffer,"ERROR0  s=%3d   ",sec);
                   lcd_gotoxy(0,0);lcd_puts(buffer);
      break;
      }
      
    case 2:
    {
    //if (error) {lcd_gotoxy(0,0); lcd_putsf("*O¬Ґ*KA*");
    //           sprintf(buffer,"   %2x   ",error); lcd_gotoxy(0,1);lcd_puts(buffer);}  91.1
    // else{
                                 //  sprintf(buffer,"бёє» %1d/%1d%c%3dј%2dc",cycle,avto,sim, (((time*6)-sec)/60),(((time*6)-sec)%60));
      if (start) {   if (avto_rad==1) {sprintf(buffer, "б01 %3d%c%c%3dј%2dc",freq1_rad*5,0x01,sim,(((time_rad*6)-sec)/60),(((time_rad*6)-sec)%60));}
                      else {
                     if (avto_rad) {sprintf(buffer,"бёє» %1d/%1d%c%3dј%2dc",cycle,avto_rad,sim, (((time_rad*6)-sec)/60),(((time_rad*6)-sec)%60));}
                        else {sprintf(buffer,"бёє» Aії%c%3dј%2dc",sim, (((time_rad*6)-sec)/60),(((time_rad*6)-sec)%60));} }    
                      //  sprintf(buffer,"START   %3ds%3dt",sec,tic); 
                       // if (sec›5) {start=0;}
                 } //Работа
                        
       else     {// lcd_gotoxy(0,0); lcd_putsf("Cїoѕ  ");
                  if (avto_rad==0) {sprintf(buffer,"CTOЁ Aії%3d.%1dјёЅ",((time_rad=time0_rad)/10),(time0_rad%10));}  //Автомат
                  if (avto_rad==1) {sprintf(buffer,"CTOЁ б01%3d.%1dјёЅ",((time_rad=time1_rad)/10),(time1_rad%10));}  // Цикл 01 
                  if (avto_rad==2) {sprintf(buffer,"CTOЁ б02%3d.%1dјёЅ",((time_rad=time1_rad+time2_rad)/10),((time1_rad+time2_rad)%10));}  //   ..     89.5
                  if (avto_rad==3) {sprintf(buffer,"CTOЁ б03%3d.%1dјёЅ",((time_rad=time1_rad+time2_rad+time3_rad)/10),((time1_rad+time2_rad+time3_rad)%10));}
                  if (avto_rad==4) {sprintf(buffer,"CTOЁ б04%3d.%1dјёЅ",((time_rad=time1_rad+time2_rad+time3_rad+time4_ra  d)/10),((time1_rad+time2_rad+time3_rad+time4_rad)%10)  );} 
                  if (avto_rad==5) {sprintf(buffer,"CTOЁ б05%3d.%1dјёЅ",((time_rad=time1_rad+time2_rad+time3_rad+time4_ra  d+time5_rad)/10),((time1_rad+time2_rad+time3_rad+time4_rad+time  5_rad)%10));}  
                     
                  //sprintf(buffer,"CTOЁ    %3ds%3dt",sec,tic);
                 // lcd_gotoxy(0,0);lcd_puts(buffer);  break;
                  }    
    lcd_gotoxy(0,0);lcd_puts(buffer);  break;     
    //sprintf(buffer, "state%3dind%3d  ",state,ind); lcd_gotoxy(0,0);lcd_puts(buffer);
    break;                                 
    }
      
    case 3:
    { 
    if (avto_rad==0) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  Aіїoјaї ");break;}  //Автомат
    if (avto_rad==1) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 01 ");break;}  // Цикл 01 
    if (avto_rad==2) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 02 ");break;}  //   ..
    if (avto_rad==3) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 03 ");break;} 
    if (avto_rad==4) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 04 ");break;} 
    if (avto_rad==5) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 05 ");break;}  
    if (avto_rad==6) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 06 ");break;} 
    if (avto_rad==7) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 07 ");break;}  
    if (avto_rad==8) {lcd_gotoxy(0,0); lcd_puts("Pe¶ёј:  бёє» 08 ");break;}  
    } 

    case 4:
    {
    sprintf(buffer, "Aії %3d%c   %2d.%1dј",freq0_rad*5,0x01,time0_rad/10,time0_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==3)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==31) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    }   
    
    case 5:
    {
    sprintf(buffer, "01  %3d%c   %2d.%1dј",freq1_rad*5,0x01,time1_rad/10,time1_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==4)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==41) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    } 
    
    case 6:
    {
    sprintf(buffer, "02  %3d%c   %2d.%1dј",freq2_rad*5,0x01,time2_rad/10,time2_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==5)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==51) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    } 
    
    case 7:
    {
    sprintf(buffer, "03  %3d%c   %2d.%1dј",freq3_rad*5,0x01,time3_rad/10,time3_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==6)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==61) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    } 
    
    case 8:
    {
    sprintf(buffer, "04  %3d%c   %2d.%1dј",freq4_rad*5,0x01,time4_rad/10,time4_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==7)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==71) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    } 
    
    case 9:
    {
    sprintf(buffer, "05  %3d%c   %2d.%1dј",freq5_rad*5,0x01,time5_rad/10,time5_rad%10); lcd_gotoxy(0,0);lcd_puts(buffer);
    if (state==8)  {lcd_gotoxy(7,0); _lcd_write_data(0b00001101); }
    if (state==81) {lcd_gotoxy(7,1); _lcd_write_data(0b00001101); }
    break;                                                                                                        
    } 
 
    
    case 13:
    {
    if (!rev_rad) {sprintf(buffer, "Haѕpaі».B»eіo   ");}
         else {sprintf(buffer, "Haѕpaі».Bѕpaіo  ");}
    lcd_gotoxy(0,0);lcd_puts(buffer);
    break;                                                                                                        
    }   
    
    case 14:
    { 
    lcd_gotoxy(0,0); lcd_puts("CёґЅa»  ");          //Сигнал 
    sprintf(buffer, "       %1d ",beep_rad); lcd_gotoxy(0,1);lcd_puts(buffer);
    break; 
    }

    case 20:
    { 
    if (error!=0) {lcd_gotoxy(0,0); lcd_putsf("*O¬Ґ*KA*");}
         else {lcd_gotoxy(6,1); lcd_putsf("OK");}       
    break; 
    } 

    };  
} 

void START_RADIAL (void)
{
 if (avto_rad==0) {freq=(((freq0_rad-16)*sec)/(time_rad*6))+16;}
 
 if (avto_rad==1) {cycle=1; freq=freq1_rad;}  
 
 if (avto_rad==2) {if (sec/6‹time1_rad) {cycle=1; freq=freq1_rad;}
                   if (sec/6›=time1_rad) {cycle=2; freq=freq2_rad;}} 
               
 if (avto_rad==3) {if (sec/6‹time1_rad)  {cycle=1; freq=freq1_rad;}
               if (sec/6==time1_rad) {cycle=2; freq=freq2_rad;}
               if (sec/6==time1_rad+time2_rad) {cycle=3; freq=freq3_rad;}} 
               
 if (avto_rad==4) {if (sec/6‹time1_rad)  {cycle=1; freq=freq1_rad;}
               if (sec/6==time1_rad) {cycle=2; freq=freq2_rad;}
               if (sec/6==time1_rad+time2_rad) {cycle=3; freq=freq3_rad;}
               if (sec/6==time1_rad+time2_rad+time3_rad) {cycle=4; freq=freq4_rad;}}  
               
 if (avto_rad==5) {if (sec/6‹time1_rad)  {cycle=1; freq=freq1_rad;}
               if (sec/6==time1_rad) {cycle=2; freq=freq2_rad;}
               if (sec/6==time1_rad+time2_rad) {cycle=3; freq=freq3_rad;}
               if (sec/6==time1_rad+time2_rad+time3_rad) {cycle=4; freq=freq4_rad;}
               if (sec/6==time1_rad+time2_rad+time3_rad+time4_rad) {cycle=5; freq=freq5_rad;}}   
            
if (!pause) {putchar(0xA0); putchar((freq‹‹2)|0b00000001|(rev_rad‹‹1)); }
        else {putchar(0xA0);putchar(0x00);}   //11               
if (sec›=(time_rad*6)){start=0; putchar(0xA0);putchar(0x00); b=beep_rad;   cycle=0;}   

}


void START_LEFT_180 (void)
{
if (tic==1){
if ((avto_180==0)||(avto_180==1)) {putchar(0xA0);putchar((freq_180‹‹2)|0b00000001);}
if ((avto_180==2)||(avto_180==3)) {putchar(0xA0);putchar((auto_freq_180‹‹2)|0b00000001);}}
 
 if (avto_180==2) {
                 if (cycle==0) {if (sec›=avto_t_180*6) {way=2; revers_180=1; brake=0; af_180=auto_freq_180; }} 
                 if (cycle==1) {if (sec›=time2_180*6)  {way=2; revers_180=1; brake=0;  }}
                 if (cycle==2) {if (sec›=(time3_180*6)){putchar(0x00); b=beep_180; start=0; rev_180=0; revers_180=0; cycle=0;}}
                 }
                 
  else {if (sec›=time_180*6) {if ((avto_180==0)||(avto_180==3)||(rev_180==1)) 
                    {
                    putchar(0xA0);putchar(0x00); 
                    b=beep_180; 
                    start=0; rev_180=0; revers_180=0; 
                    }
             else {way=2;revers_180=1;brake=0;} }
  }
}

void START_RIGHT_180 (void)
{
if (tic==1){
if ((avto_180==0)||(avto_180==1)) {putchar(0xA0);putchar((freq_180‹‹2)|0b00000011);}
if ((avto_180==2)||(avto_180==3)) {putchar(0xA0);putchar((auto_freq_180‹‹2)|0b00000011);}} 
        
 if (avto_180==2)   {
                 if (cycle==0) {if (sec›=avto_t_180*6) {way=1; revers_180=1; brake=0; af_180=auto_freq_180; }} 
                 if (cycle==1) {if (sec›=time2_180*6)  {way=1; revers_180=1; brake=0; }}
                 if (cycle==2) {if (sec›=(time3_180*6)){putchar(0x00); b=beep_180; start=0; rev_180=0; revers_180=0; cycle=0;}}
                 }
  else {if (sec›=time_180*6) {if ((avto_180==0)||(avto_180==3)||(rev_180==1)) 
                   {
                   putchar(0xA0);putchar(0x00); 
                   b=beep_180; 
                   start=0; rev_180=0; revers_180=0;
                   }
             else {way=1;revers_180=1;brake=0;} }
  }
}

void START_REVERS_180 (void)
{
if (tic==1) {
             putchar(0xA0);
             putchar(0x00);
            }  

if (rev_a_r_180==0)
    { 
      if (avto_180==1) {if (brake›=20) {revers_180=0;rev_180=1;sec=0;}} 

      if (avto_180==2) {if (cycle==1) {if (brake›=20) {revers_180=0;sec=0;cycle++;}}
                        if (cycle==0) {if (brake›=20) {revers_180=0;sec=0;cycle++;}}} 
    } 
else
    {if (brake==0) {b=1;}
      if (avto_180==1) {if ((button==star)||(button==paus)) {revers_180=0;rev_180=1;sec=0;}} 

      if (avto_180==2) {if (cycle==1) {if ((button==star)||(button==paus)) {revers_180=0;sec=0;cycle++;}}
                        if (cycle==0) {if ((button==star)||(button==paus)) {revers_180=0;sec=0;cycle++;}}} 
    }
      
}


 void EXPERT_OPTIONS (void)
 {
  switch (expert_state) {
  case 0:
    {
     if (q==1) {putchar(0xBC);if(getchar()==0xB0) {temp_pcb=getchar();}q=0;};
    sprintf(buffer, "PCB_TEMPt=%3d%c  ",temp_pcb,0x07); lcd_gotoxy(0,0);lcd_puts(buffer);   
    if (button==sett) {expert_state=1;}
    if (button==stop) {expert=0;home}   
    break; 
    }  
       
  case 1:                                       //SET время разгона
    { 
    if(button==incr) {if (tx_narast›5) {tx_narast--;}}                        //100%-5
    if(button==sett) {putchar(0xA1);putchar(tx_narast); expert_state=2; }                          
    if(button==decr) {if (tx_narast‹20) {tx_narast++;}}
    if(button==stop) {putchar(0xA1);putchar(tx_narast); expert=0;home} 
    sprintf(buffer, "t.Ѕapacїt=%3d%%  ",125-(5*tx_narast)); lcd_gotoxy(0,0);lcd_puts(buffer);  
    break;    
    }   
    
  case 2:                                       //SET время торможения
    { 
    if(button==decr) {if (tx_brake›0) {tx_brake--;}}        
    if(button==sett) {putchar(0xA2);putchar(tx_brake); expert_state=3; }                         
    if(button==incr) {if (tx_brake‹30) {tx_brake++;}}
    if(button==stop) {putchar(0xA2);putchar(tx_brake); expert=0;home} 
    sprintf(buffer, "t.їopјo¶t=%2dceє ",tx_brake); lcd_gotoxy(0,0);lcd_puts(buffer);  
    break;    
    }     
    
  case 3:                                       //SET величина тока защиты
    { 
    if(button==decr) {if (tx_current›5) {tx_current--;}}          
    if(button==sett) {putchar(0xA3);putchar(tx_current); expert_state=0; }                          
    if(button==incr) {if (tx_current‹150) {tx_current++;}}
    if(button==stop) {putchar(0xA3);putchar(tx_current); expert=0;home} 
    sprintf(buffer, "Toє.·aж.i=%2d.%1dA ",tx_current/10,tx_current%10); lcd_gotoxy(0,0);lcd_puts(buffer);  
    break;    
    } 
                              
    }  
 }                           
 void BUT_Debrief(void)
{ 
 static unsigned char key;
                                   
 if (!but_decr) {key=decr;}
 if (!but_sett) {key=sett;}
 if (!but_incr) {key=incr;}
 if (!but_star) {key=star;}
 if (!but_stop) {key=stop;}
 if (!but_paus) {key=paus;}
 if ((!but_decr)&&(!but_incr)) {key=korr;} 
 if ((but_decr)&&(but_sett)&&(but_incr)&&(but_star)&&(but_stop)&&(but_paus)) {key=null;}   
                   
   if (key)
  {  
    if ((comp › THRESHOLD2)&&(key != sett)&&(key != star)&&(key != stop)&&(key != paus))
    {
      comp = THRESHOLD2 - THRESHOLD_GO ;
      pressedKey = key;
      return;
    }
    else comp++;
    
    if (comp == THRESHOLD) 
    {
     pressedKey = key;
    if ((!tip)&&(beep_180)){beep_out=1;} 
    if ((tip)&&(beep_rad)){beep_out=1;}
    return;  
    }  
    if (comp › THRESHOLD)
     {
      beep_out=0; 
     }
     
    if ((comp == THRESHOLD_LONG_PRESS)&&(key==stop)) 
    {beep_out=1;
     pressedKey = long_stop;
     return;
    } 
    
        if ((comp == THRESHOLD_LONG_LONG_PRESS)&&(key==sett)) 
    {beep_out=1;
     pressedKey = long_sett;
     return;
    }     
  }
  else {if (comp) {comp=0; beep_out=0; }}
  }  
  
 unsigned char BUT_GetKey(void)
{
  unsigned char key = pressedKey;
  pressedKey = null;
  return key;

} 


// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x00;
// Place your code here

  BUT_Debrief();   
  
}

// Timer1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{  static char BuzTick = 0;
// Reinitialize Timer1 value
TCNT1H=0xBDC ›› 8;
TCNT1L=0xBDC & 0xff;
// Place your code here
//beep_out^=1;
tic++;
tic1++; 
 if (tic1%8==0) {bl++; 
               if (BuzTick ‹ b*2)        //Бипер
              {
                if (BuzTick & 1) beep_out=0; else  beep_out=1;           
                BuzTick++; 
              } 
               else
              {
               //beep_out=0;      
               BuzTick = 0;
               b=0; 
              } }      
 if (tic1%2==0) {r=1;}                             
 if (tic1›=16) {q=1; if (!pause) {sec++;}  brake++;if ((state!=1)&&(state!=123)) {if (res‹15) {res++;} else{res=0;home}} tic1=0;  }
 

}


// Timer2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Reinitialize Timer2 value
TCNT2=0x0C;
// Place your code here

}


Нажмите, чтобы открыть спойлер
Код:
void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1


// Input/Output Ports initialization
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out 
DDRB=(0‹‹DDB7) | (0‹‹DDB6) | (0‹‹DDB5) | (0‹‹DDB4) | (1‹‹DDB3) | (1‹‹DDB2) | (1‹‹DDB1) | (1‹‹DDB0);
// State: Bit7=T Bit6=T Bit5=P Bit4=P Bit3=0 Bit2=0 Bit1=0 Bit0=0 
PORTB=(0‹‹PORTB7) | (0‹‹PORTB6) | (1‹‹PORTB5) | (1‹‹PORTB4) | (0‹‹PORTB3) | (0‹‹PORTB2) | (0‹‹PORTB1) | (0‹‹PORTB0);

// Port C initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=In Bit1=In Bit0=In 
DDRC=(0‹‹DDC6) | (0‹‹DDC5) | (0‹‹DDC4) | (1‹‹DDC3) | (0‹‹DDC2) | (0‹‹DDC1) | (0‹‹DDC0);
// State: Bit6=T Bit5=P Bit4=P Bit3=0 Bit2=P Bit1=P Bit0=P 
PORTC=(0‹‹PORTC6) | (1‹‹PORTC5) | (1‹‹PORTC4) | (0‹‹PORTC3) | (1‹‹PORTC2) | (1‹‹PORTC1) | (1‹‹PORTC0);

// Port D initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=In Bit1=Out Bit0=In 
DDRD=(1‹‹DDD7) | (1‹‹DDD6) | (1‹‹DDD5) | (1‹‹DDD4) | (1‹‹DDD3) | (0‹‹DDD2) | (1‹‹DDD1) | (0‹‹DDD0);
// State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=P Bit1=0 Bit0=P 
PORTD=(0‹‹PORTD7) | (0‹‹PORTD6) | (0‹‹PORTD5) | (0‹‹PORTD4) | (0‹‹PORTD3) | (1‹‹PORTD2) | (0‹‹PORTD1) | (1‹‹PORTD0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Normal top=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
// Timer Period: 62,464 ms
TCCR0A=(0‹‹COM0A1) | (0‹‹COM0A0) | (0‹‹COM0B1) | (0‹‹COM0B0) | (0‹‹WGM01) | (0‹‹WGM00);
TCCR0B=(0‹‹WGM02) | (1‹‹CS02) | (0‹‹CS01) | (1‹‹CS00);
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 500,000 kHz
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer Period: 62,5 ms
// Timer1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0‹‹COM1A1) | (0‹‹COM1A0) | (0‹‹COM1B1) | (0‹‹COM1B0) | (0‹‹WGM11) | (0‹‹WGM10);
TCCR1B=(0‹‹ICNC1) | (0‹‹ICES1) | (0‹‹WGM13) | (0‹‹WGM12) | (0‹‹CS12) | (1‹‹CS11) | (0‹‹CS10);
TCNT1H=0x0B;
TCNT1L=0xDC;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2A output: Disconnected
// OC2B output: Disconnected
ASSR=(0‹‹EXCLK) | (0‹‹AS2);
TCCR2A=(0‹‹COM2A1) | (0‹‹COM2A0) | (0‹‹COM2B1) | (0‹‹COM2B0) | (0‹‹WGM21) | (0‹‹WGM20);
TCCR2B=(0‹‹WGM22) | (0‹‹CS22) | (0‹‹CS21) | (0‹‹CS20);
TCNT2=0x0C;
OCR2A=0x00;
OCR2B=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0‹‹OCIE0B) | (0‹‹OCIE0A) | (1‹‹TOIE0);

// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=(0‹‹ICIE1) | (0‹‹OCIE1B) | (0‹‹OCIE1A) | (1‹‹TOIE1);

// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=(0‹‹OCIE2B) | (0‹‹OCIE2A) | (1‹‹TOIE2);

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=(0‹‹ISC11) | (0‹‹ISC10) | (0‹‹ISC01) | (0‹‹ISC00);
EIMSK=(0‹‹INT1) | (0‹‹INT0);
PCICR=(0‹‹PCIE2) | (0‹‹PCIE1) | (0‹‹PCIE0);

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, Even Parity
// USART Receiver: On
// USART Transmitter: On
// USART0 Mode: Asynchronous
// USART Baud Rate: 9600
UCSR0A=(0‹‹RXC0) | (0‹‹TXC0) | (0‹‹UDRE0) | (0‹‹FE0) | (0‹‹DOR0) | (0‹‹UPE0) | (0‹‹U2X0) | (0‹‹MPCM0);
UCSR0B=(1‹‹RXCIE0) | (1‹‹TXCIE0) | (0‹‹UDRIE0) | (1‹‹RXEN0) | (1‹‹TXEN0) | (0‹‹UCSZ02) | (0‹‹RXB80) | (0‹‹TXB80);
UCSR0C=(0‹‹UMSEL01) | (0‹‹UMSEL00) | (1‹‹UPM01) | (0‹‹UPM00) | (0‹‹USBS0) | (1‹‹UCSZ01) | (1‹‹UCSZ00) | (0‹‹UCPOL0);
UBRR0H=0x00;
UBRR0L=0x19;

// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1‹‹ACD) | (0‹‹ACBG) | (0‹‹ACO) | (0‹‹ACI) | (0‹‹ACIE) | (0‹‹ACIC) | (0‹‹ACIS1) | (0‹‹ACIS0);
ADCSRB=(0‹‹ACME);
// Digital input buffer on AIN0: On
// Digital input buffer on AIN1: On
DIDR1=(0‹‹AIN0D) | (0‹‹AIN1D);

// ADC initialization
// ADC disabled
ADCSRA=(0‹‹ADEN) | (0‹‹ADSC) | (0‹‹ADATE) | (0‹‹ADIF) | (0‹‹ADIE) | (0‹‹ADPS2) | (0‹‹ADPS1) | (0‹‹ADPS0);

// SPI initialization
// SPI disabled
SPCR=(0‹‹SPIE) | (0‹‹SPE) | (0‹‹DORD) | (0‹‹MSTR) | (0‹‹CPOL) | (0‹‹CPHA) | (0‹‹SPR1) | (0‹‹SPR0);

// TWI initialization
// TWI disabled
TWCR=(0‹‹TWEA) | (0‹‹TWSTA) | (0‹‹TWSTO) | (0‹‹TWEN) | (0‹‹TWIE);

// Bit-Banged I2C Bus initialization
// I2C Port: PORTC
// I2C SDA bit: 4
// I2C SCL bit: 5
// Bit Rate: 100 kHz
// Note: I2C settings are specified in the
// Project|Configure|C Compiler|Libraries|I2C menu.
//i2c_init();

// LM75 Temperature Sensor initialization
// thyst: 75°C
// tos: 80°C
// O.S. polarity: 0
//lm75_init(0,75,80,0);

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 5
// RD - PORTD Bit 6
// EN - PORTD Bit 7
// D4 - PORTB Bit 1
// D5 - PORTB Bit 0
// D6 - PORTB Bit 3
// D7 - PORTB Bit 2
// Characters/line: 8
lcd_init(8);

define_char(char0,0x00); 

define_char(char1,0x01); 

define_char(char2,0x02); 

define_char(char3,0x03); 

define_char(char4,0x04); 

define_char(char5,0x05); 

define_char(char6,0x06); 

define_char(char7,0x07); 


eeptoflash();
putchar(0xA1);putchar(tx_narast);
putchar(0xA2);putchar(tx_brake);
putchar(0xA3);putchar(tx_current);
#asm("sei")

while (1)
      {             
      button=BUT_GetKey();
      if((button==long_stop)||(button==long_sett)) {expert=1;}     
        
      if (expert==0)
                 {
                 if (zapusk==1) 
                  {
                    if (tip==0)
                            {
                            FUNC_180();  if (!start) {rev_180=0;}
                            if ((start)&&(way==1)&&(!revers_180)) {START_LEFT_180();  }
                            if ((start)&&(way==2)&&(!revers_180)) {START_RIGHT_180(); }
                            if ((start)&&(revers_180)) {START_REVERS_180();} 
                            if(r) {INDICATION_180();   r=0;}
                            }
                    if (tip==1) 
                            {     
                             FUNC_RADIAL(); 
                             
                             if (pause) {sim=0x05;} else {sim=0x06;}
                             if (start) {START_RADIAL();} 
                             if(r) {INDICATION_RADIAL();r=0;}
                              }
                  }   
                  if (zapusk==0) 
                       {
                       ZAPUSK1();
                       }
                  }
      if (expert==1) 
               {
                EXPERT_OPTIONS();
               }  
                           
                      /*       FUNC_RADIAL();
                            // INDICATION_RADIAL();  
                             if (pause) {sim=0x05;} else {sim=0x06;}
                             if (start) {START_RADIAL();}    
                          //  sprintf(buffer, "start=%2dst%3di%2d",start,state,ind);  lcd_gotoxy(0,0);lcd_puts(buffer); 
                             if(r) {INDICATION_RADIAL();r=0;} 
                       */       
      }
}

Последний раз редактировалось Aselicon; 02.04.2017 в 13:44.
Aselicon вне форума  
Непрочитано 06.04.2017, 22:03  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 179
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: CVAVR порча переменных

Сообщение от Aselicon Посмотреть сообщение
#include
#include
#include
#include
И вы хотите чтобы, что то работало?

Сообщение от Aselicon Посмотреть сообщение
#define DATA_REGISTER_EMPTY (1‹=5)&&(eep1_time_180‹=995)&&(eep1_time_180==eep2 _time_180)&&(eep1_freq_180›=1)&&(eep1_freq_180‹=60 )&&(eep1_avto_rad‹=10)) {}
else {eep_error=1;}
Что тут получится хз.
CodeNameHawk вне форума  
Непрочитано 06.04.2017, 22:04  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 179
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: CVAVR порча переменных

Нижний спойлер к чему относится?
CodeNameHawk вне форума  
Непрочитано 06.04.2017, 22:18  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: CVAVR порча переменных

Сообщение от CodeNameHawk Посмотреть сообщение
Нижний спойлер к чему относится?
А то такая программа и есть, без задней скобки и одной недописанной строкой, а все остальное - определения функций и переменных.

А это:
#define DATA_REGISTER_EMPTY (1‹=5)&&(eep1_time_180‹=995)&&(eep1_time_180==eep2 _time_180)&&(eep1_freq_180›=1)&&(eep1_freq_180‹=60 )&&(eep1_avto_rad‹=10)) {}
else {eep_error=1;}
наверное, попытка написать многострочный макрос без обратного слэша.

В общем, я думаю, что никто не отвечает, что ничего нет... никакой программы и даже инициализации.
МВА вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Софтовый i2c в cvavr day177 AVR 3 01.05.2014 14:50
Attiny13\2313 и генератор импульсов на CVAVR deeman30rus AVR 31 22.11.2012 19:20
Как правильно объявлять булевый тип переменных для МК Atmel? sanstan Микроконтроллеры, АЦП, память и т.д 10 08.04.2011 16:22
Помогите с записью в память по заданному адресу в cvavr begun Микроконтроллеры, АЦП, память и т.д 5 06.04.2011 11:32
Знатоки CVAVR. АЙ НИД ХЕЛП!!! Nikopol Микроконтроллеры, АЦП, память и т.д 3 06.06.2008 12:18


Часовой пояс GMT +4, время: 16:14.


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