CUbeide 1.8 глючит.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CUbeide 1.8 глючит.
ivan dimir, опять Вы за своё ? Буду килять нахрен Ваши посты, за такое неуважение к нам !
- Реклама
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
[uquote="Аlex",url="/forum/viewtopic.php?p=4168733#p4168733"]ivan dimir, опять Вы за своё ? Буду килять нахрен Ваши посты, за такое неуважение к нам ![/uquote]
А как правильно?
А как правильно?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CUbeide 1.8 глючит.
Вы не видите разницу, между форматированием Вашего выложенного кода и других участников ? Серьёзно ? 
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
[uquote="Аlex",url="/forum/viewtopic.php?p=4168741#p4168741"]Вы не видите разницу, между форматированием Вашего выложенного кода и других участников ? Серьёзно ?
[/uquote]
Вижу .Дайте мне инструкцию.И переведите на мой язык.Простолюдинов(тюрский)?
Вижу .Дайте мне инструкцию.И переведите на мой язык.Простолюдинов(тюрский)?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CUbeide 1.8 глючит.
А ещё Вам что дать ? Ключи от квартиры не надо ?ivan dimir писал(а):Дайте мне инструкцию
Интернетом тоже не умеете пользоваться ?
- Реклама
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
Ну обьясните мне нерусскому как правильно вводить программу на белом фоне чтоб было?
Код: Выделить всё
Re: CUbeide 1.8 глючит.
ivan dimir, нажимаешь [спойлер][код]сюда вставляешь свой код[/код][/спойлер]
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
[uquote="Dimon456",url="/forum/viewtopic.php?p=4168768#p4168768"]ivan dimir, нажимаешь [спойлер][код]сюда вставляешь свой код[/код][/спойлер][/uquote] А спойлер что это и где находится.Я чтото не замечал?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CUbeide 1.8 глючит.
Спойлер
Код: Выделить всё
Сюда копируем код !
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
Спойлер
Код: Выделить всё
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 глючит.
Маладец

-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
Да при создании проекта в CUbeide 1.8 .Я создаю папки и хочу создать файлы.Компилятор не видит эти папки ? А видит те папки которые созданные копилятором.Раньше такого не было.?
- AlanDrakes
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Пн июл 04, 2016 16:51:22
- Откуда: Россия, Омск
Re: CUbeide 1.8 глючит.
Чтож. Кажется, я вижу причину.
1. Используйте более мягкие проверки переменных:
Либо измените тип переменной "а" на int16_t (она станет знаковой, и это даже лучше):
Та же проблема с переменной "b" - она БЕЗЗНАКОВАЯ. Она не может принимать отрицательных значений, но её технически можно переполнить. Случайно.
2. Работа со строковым буфером... неудачная.
Разберём строку:
В результате получим вывод:
Естественно, с числом вплоть до 99 всё будет работать. Но printf с аргументом %2d - будет резервировать только ДВА знакоместа под число. Всё, что не поместится будет печататься дальше.
Исправим на
Теперь будем получать такой вывод:
Всё, что печатается ДО заместителя переменной, будет печататься в неизменном виде.
То есть, ровно то, что я предположил в предыдущем ответе. :/
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--;
}
<...>
Код: Выделить всё
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--;
}
<...>
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 символов)
Исправим на
Код: Выделить всё
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 символов)
То есть, ровно то, что я предположил в предыдущем ответе. :/
Re: CUbeide 1.8 глючит.
AlanDrakes писал(а):Чтож. Кажется, я вижу причину.
Код: Выделить всё
sprintf(buf," a=%2d",a);Это в одну строку выводится или нет?ivan dimir писал(а):А когда запускаю Часы DS3231 нормально.
В это время контроллер будет находится в состоянии сброса и передача по i2c будет прекращена.Dimon456 писал(а):Резет нажми и удержи или паузу в отладчике, мерцают эти показания или нет?
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
[uquote="AlanDrakes",url="/forum/viewtopic.php?p=4168872#p4168872"]Чтож. Кажется, я вижу причину.
1. Используйте более мягкие проверки переменных:
Либо измените тип переменной "а" на int16_t (она станет знаковой, и это даже лучше):
Та же проблема с переменной "b" - она БЕЗЗНАКОВАЯ. Она не может принимать отрицательных значений, но её технически можно переполнить. Случайно.
2. Работа со строковым буфером... неудачная.
Разберём строку:
В результате получим вывод:
Естественно, с числом вплоть до 99 всё будет работать. Но printf с аргументом %2d - будет резервировать только ДВА знакоместа под число. Всё, что не поместится будет печататься дальше.
Исправим на
Теперь будем получать такой вывод:
Всё, что печатается ДО заместителя переменной, будет печататься в неизменном виде.
То есть, ровно то, что я предположил в предыдущем ответе. :/[/uquote]
сделал как вы говорили.Без изменения.Причина не эта.
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--;
}
<...>
Код: Выделить всё
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--;
}
<...>
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 символов)
Исправим на
Код: Выделить всё
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 глючит.
ivan dimir, почитайте правила, пожалуйста !
Могу даже Вам дать "отпуск", под это дело !
Могу даже Вам дать "отпуск", под это дело !
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
Я ничего зазорного не пишу.Это технический момент.В AVR такого не было.Я так подозреваю что или проблема в библиотеке Lcd или в шине проблема i2c.Мнение профессионалов для меня имеет большое значение.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CUbeide 1.8 глючит.
Ещё раз - почитайте правила форума ! Пока это просьба.
-
Professor Chaos
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Вс мар 21, 2021 11:06:04
Re: CUbeide 1.8 глючит.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=4169038#p4169038"]Я ничего зазорного не пишу.[/uquote]
Не цитируйте длинные сообщения полностью. Цитируйте конкретные фразы, на которые отвечаете, а не весь текст сообщения на три монитора.
Заметили, как я вас процитировал? Я процитировал не всё ваше исходное сообщение, а лишь малую его часть. Ровно ту, на которую ответил. Поступайте также.
Не цитируйте длинные сообщения полностью. Цитируйте конкретные фразы, на которые отвечаете, а не весь текст сообщения на три монитора.
Заметили, как я вас процитировал? Я процитировал не всё ваше исходное сообщение, а лишь малую его часть. Ровно ту, на которую ответил. Поступайте также.
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: CUbeide 1.8 глючит.
Понял .Это по незнанию.И не умению.


