CUbeide 1.8 глючит.

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

ivan dimir, опять Вы за своё ? Буду килять нахрен Ваши посты, за такое неуважение к нам !
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

[uquote="Аlex",url="/forum/viewtopic.php?p=4168733#p4168733"]ivan dimir, опять Вы за своё ? Буду килять нахрен Ваши посты, за такое неуважение к нам ![/uquote]
А как правильно?
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

Вы не видите разницу, между форматированием Вашего выложенного кода и других участников ? Серьёзно ? :facepalm:
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

[uquote="Аlex",url="/forum/viewtopic.php?p=4168741#p4168741"]Вы не видите разницу, между форматированием Вашего выложенного кода и других участников ? Серьёзно ? :facepalm:[/uquote]
Вижу .Дайте мне инструкцию.И переведите на мой язык.Простолюдинов(тюрский)?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

ivan dimir писал(а):Дайте мне инструкцию
А ещё Вам что дать ? Ключи от квартиры не надо ? :)))

Интернетом тоже не умеете пользоваться ?
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

Ну обьясните мне нерусскому как правильно вводить программу на белом фоне чтоб было?
Реклама
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: CUbeide 1.8 глючит.

Сообщение Dimon456 »

ivan dimir, нажимаешь [спойлер][код]сюда вставляешь свой код[/код][/спойлер]
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4168768#p4168768"]ivan dimir, нажимаешь [спойлер][код]сюда вставляешь свой код[/код][/спойлер][/uquote] А спойлер что это и где находится.Я чтото не замечал?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

Спойлер

Код: Выделить всё

Сюда копируем код !
Изображение
2022-01-26_22-20-30.png
(18.2 КБ) 291 скачивание
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

Спойлер

Код: Выделить всё

int main(void)
{
	 RCC_init();
	 init_systimer();
	 AHB1ER_init();
	 GPIO_init();

	  timer_2_init();
	 I2C1_Init();
	 LCD_ini();
	 LCD_Clear();
	while(1)
	{


		  if((GPIOB->IDR&GPIO_IDR_IDR_5)==0)
			  	{
			  		delay_ms(10);
			  		flag=1;
			  	}

			     if((flag==1)&&(GPIOB->IDR&GPIO_IDR_IDR_5))
			    {
				  flag=0;
				  menu_lcd++;
				  menu_btn++;
			    }
			     if(menu_btn==1)
			     {
			    	                          if((GPIOB->IDR&GPIO_IDR_IDR_4)==0)
			    		     	  		        {
			    		     	            	// __disable_irq ();

			    		     	            	//   if(pauza1>20)
			    		     	            	//  {
			    		     	                //    pauza1=0;
			    		     	                   //a++;
			    		     	  		      		if (a==4095)
			    		     	  		      		{
			    		     	  		      			 a=0;
			    		     	  		      		}
			    		     	  		      	    a++;
			    		     	            	// }

			    		     	  		        }
			    		     	                  //__enable_irq ();
			    		     	  		       if((GPIOB->IDR&GPIO_IDR_IDR_8)==0)
			    		     	  		       {
			    		     	  		        	//__disable_irq ();
			    		                           //if(pauza1>20)
			    		                         // {
			    		     	  			      //  pauza1=0;
			    		     	  			         ///a--;
			    		     	  		            if (a==0)
			    		     	  		            {
			    		     	  		             a=4095;
			    		     	  		            }
			    		     	  		           a--;
			    		                         // }
			    		     	  		      }

			     }
			     if(menu_btn==2)
			     {
			                                         if((GPIOB->IDR&GPIO_IDR_IDR_4)==0)
			    	                 			    	{
			    	                 	            	 //  __disable_irq ();
			    	                 	            	  	//pauza1=0;
			    	                 			    		if (b==4095)
			    	                 			              {
			    	                 			    		    b=0;
			    	                 			              }
			    	                 			    		   b++;

			    	                 			    	}
			    	                 	               //__enable_irq ();
			    	                 			    	if((GPIOB->IDR&GPIO_IDR_IDR_8)==0)
			    	                 			        {
			    	                 			    	//	__disable_irq ();
			    	                 			    		if (b==0)
			    	                 			    	     {
			    	                 			    			b=4095;
			    	                 			    		 }
			    	                 			    			b--;

			    	                 			        }
			     }
			     if(menu_btn==3)
			     {
			    	                             if((GPIOB->IDR&GPIO_IDR_IDR_4)==0)
			    		     		 		    	{
			    		     		            	//  __disable_irq ();
			    		     		 		    		if (c==4095)
			    		     		 		              {
			    		     		 		    		    c=0;
			    		     		 		              }
			    		     		 		    		c++;

			    		     		 		    	}
			    		     		             // __enable_irq ();
			    		     		 		    	if((GPIOB->IDR&GPIO_IDR_IDR_8)==0)
			    		     		 		        {
			    		     		 		    	//	__disable_irq ();
			    		     		 		    		if (c==0)
			    		     		 		    	     {
			    		     		 		    			c=4095;
			    		     		 		    		 }
			    		     		 		    			c--;
			    		     		 		        }
			     }
			     if(menu_btn==4)
			     {
			                               if((GPIOB->IDR&GPIO_IDR_IDR_4)==0)
			   	     		              {
			   	     	                	  // __disable_irq ();
			   	     		    	        	if ( d==4095)
			   	     		                   {
			   	     		    		         d=0;
			   	     		                   }
			   	     		                  d++;

			   	     		    	        }
			   	     	                 //  __enable_irq ();
			   	     		    	        if((GPIOB->IDR&GPIO_IDR_IDR_8)==0)
			   	     		                {
			   	     		    	        //	__disable_irq ();

			   	     		    		        // pauza1=0;

			   	     		    		        if (d==0)
			   	     		    	            {
			   	     		    			      d=4095;
			   	     		    		         }
			   	     		    			     d--;

			   	     		                  }
			   	     		    	       // __enable_irq ();
			     }
			     if(menu_btn==5)
			     {
			    	 menu_btn=0;
			     }
		          if(menu_lcd==0)
		          {

			  	     LCD_SetPos(0,0);
			            LCD_String("Bobr_stm32");
		              }


		           if(menu_lcd==1)
		            {


		                  sprintf(buf,"     a=%2d",a);
		                   LCD_SetPos(0,1);
		                   LCD_String(buf);

		           }
		            if(menu_lcd==2)
		            {


		                   sprintf(buf2,"b=%2d        ",b);
		                     LCD_SetPos(0,0);
		                   LCD_String(buf2);
		                }
		            if(menu_lcd==3)
		             {

		                     sprintf(buf4,"c=%2d     ",c);
		                    LCD_SetPos(0,0);
		                     LCD_String(buf4);
		                }
		              if(menu_lcd==4)
		              {

		                 sprintf(buf6,"d=%2d      ",d);
		                  LCD_SetPos(0,0);
		                  LCD_String(buf6);

		              }
		             if(menu_lcd==5)
		             {
				         menu_lcd=0;

			         }

	}

}
 
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

Маладец :write: :music: :tea:
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

Да при создании проекта в CUbeide 1.8 .Я создаю папки и хочу создать файлы.Компилятор не видит эти папки ? А видит те папки которые созданные копилятором.Раньше такого не было.?
Аватара пользователя
AlanDrakes
Прорезались зубы
Сообщения: 236
Зарегистрирован: Пн июл 04, 2016 16:51:22
Откуда: Россия, Омск

Re: CUbeide 1.8 глючит.

Сообщение AlanDrakes »

Чтож. Кажется, я вижу причину.
1. Используйте более мягкие проверки переменных:

Код: Выделить всё

	if(menu_btn==1) {
		if((GPIOB->IDR&GPIO_IDR_IDR_4)==0) {
			if (a >= 4095) {
				a = 0;
			}
			a++;
		}
		if((GPIOB->IDR&GPIO_IDR_IDR_8)==0) {
			if (a >= 4096) {
				a = 4095;
			}
			a--;
		}
<...>
Либо измените тип переменной "а" на int16_t (она станет знаковой, и это даже лучше):

Код: Выделить всё

	if(menu_btn==1) {
		if((GPIOB->IDR&GPIO_IDR_IDR_4)==0) {
			if (a >= 4095) {
				a = 0;
			}
			a++;
		}
		if((GPIOB->IDR&GPIO_IDR_IDR_8)==0) {
			if (a <= 0) {
				a = 4095;
			}
			a--;
		}
<...>
Та же проблема с переменной "b" - она БЕЗЗНАКОВАЯ. Она не может принимать отрицательных значений, но её технически можно переполнить. Случайно.

2. Работа со строковым буфером... неудачная.
Разберём строку:

Код: Выделить всё

sprintf(buf,"     a=%2d",a);
В результате получим вывод:

Код: Выделить всё

sprintf(buf,"     a=%2d",200) ->
"     a=200" (10 символов)
sprintf(buf,"     a=%2d",10) ->
"     a=10" (9 символов)
sprintf(buf,"     a=%2d",4096) ->
"     a=4096" (11 символов)
Естественно, с числом вплоть до 99 всё будет работать. Но printf с аргументом %2d - будет резервировать только ДВА знакоместа под число. Всё, что не поместится будет печататься дальше.
Исправим на

Код: Выделить всё

sprintf(buf,"     a=%4d",a)
Теперь будем получать такой вывод:

Код: Выделить всё

sprintf(buf,"     a=%4d",1) ->
"     a=   1" (11 символов)
sprintf(buf,"     a=%4d",42) ->
"     a=  42" (11 символов)
sprintf(buf,"     a=%4d",123) ->
"     a= 123" (11 символов)
sprintf(buf,"     a=%4d",4095) ->
"     a=4095" (11 символов)
Всё, что печатается ДО заместителя переменной, будет печататься в неизменном виде.

То есть, ровно то, что я предположил в предыдущем ответе. :/
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: CUbeide 1.8 глючит.

Сообщение Dimon456 »

AlanDrakes писал(а):Чтож. Кажется, я вижу причину.

Код: Выделить всё

sprintf(buf,"     a=%2d",a);
Да он просто пропустил первые 5 символов, а причину не нашел.
ivan dimir писал(а):А когда запускаю Часы DS3231 нормально.
Это в одну строку выводится или нет?
Dimon456 писал(а):Резет нажми и удержи или паузу в отладчике, мерцают эти показания или нет?
В это время контроллер будет находится в состоянии сброса и передача по i2c будет прекращена.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

[uquote="AlanDrakes",url="/forum/viewtopic.php?p=4168872#p4168872"]Чтож. Кажется, я вижу причину.
1. Используйте более мягкие проверки переменных:

Код: Выделить всё

	if(menu_btn==1) {
		if((GPIOB->IDR&GPIO_IDR_IDR_4)==0) {
			if (a >= 4095) {
				a = 0;
			}
			a++;
		}
		if((GPIOB->IDR&GPIO_IDR_IDR_8)==0) {
			if (a >= 4096) {
				a = 4095;
			}
			a--;
		}
<...>
Либо измените тип переменной "а" на int16_t (она станет знаковой, и это даже лучше):

Код: Выделить всё

	if(menu_btn==1) {
		if((GPIOB->IDR&GPIO_IDR_IDR_4)==0) {
			if (a >= 4095) {
				a = 0;
			}
			a++;
		}
		if((GPIOB->IDR&GPIO_IDR_IDR_8)==0) {
			if (a <= 0) {
				a = 4095;
			}
			a--;
		}
<...>
Та же проблема с переменной "b" - она БЕЗЗНАКОВАЯ. Она не может принимать отрицательных значений, но её технически можно переполнить. Случайно.

2. Работа со строковым буфером... неудачная.
Разберём строку:

Код: Выделить всё

sprintf(buf,"     a=%2d",a);
В результате получим вывод:

Код: Выделить всё

sprintf(buf,"     a=%2d",200) ->
"     a=200" (10 символов)
sprintf(buf,"     a=%2d",10) ->
"     a=10" (9 символов)
sprintf(buf,"     a=%2d",4096) ->
"     a=4096" (11 символов)
Естественно, с числом вплоть до 99 всё будет работать. Но printf с аргументом %2d - будет резервировать только ДВА знакоместа под число. Всё, что не поместится будет печататься дальше.
Исправим на

Код: Выделить всё

sprintf(buf,"     a=%4d",a)
Теперь будем получать такой вывод:

Код: Выделить всё

sprintf(buf,"     a=%4d",1) ->
"     a=   1" (11 символов)
sprintf(buf,"     a=%4d",42) ->
"     a=  42" (11 символов)
sprintf(buf,"     a=%4d",123) ->
"     a= 123" (11 символов)
sprintf(buf,"     a=%4d",4095) ->
"     a=4095" (11 символов)
Всё, что печатается ДО заместителя переменной, будет печататься в неизменном виде.

То есть, ровно то, что я предположил в предыдущем ответе. :/[/uquote]
сделал как вы говорили.Без изменения.Причина не эта.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

ivan dimir, почитайте правила, пожалуйста !
Могу даже Вам дать "отпуск", под это дело ! :)
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

Я ничего зазорного не пишу.Это технический момент.В AVR такого не было.Я так подозреваю что или проблема в библиотеке Lcd или в шине проблема i2c.Мнение профессионалов для меня имеет большое значение.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CUbeide 1.8 глючит.

Сообщение Аlex »

:facepalm:
Ещё раз - почитайте правила форума ! Пока это просьба.
Professor Chaos
Открыл глаза
Сообщения: 41
Зарегистрирован: Вс мар 21, 2021 11:06:04

Re: CUbeide 1.8 глючит.

Сообщение Professor Chaos »

[uquote="ivan dimir",url="/forum/viewtopic.php?p=4169038#p4169038"]Я ничего зазорного не пишу.[/uquote]
Не цитируйте длинные сообщения полностью. Цитируйте конкретные фразы, на которые отвечаете, а не весь текст сообщения на три монитора.
Заметили, как я вас процитировал? Я процитировал не всё ваше исходное сообщение, а лишь малую его часть. Ровно ту, на которую ответил. Поступайте также.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: CUbeide 1.8 глючит.

Сообщение ivan dimir »

Понял .Это по незнанию.И не умению.
Ответить

Вернуться в «ARM»