реклама на сайте
подробности

 
 
> или глюк в IAR, или я что- то упускаю, вопрос по массиву
Метценгерштейн
сообщение Jan 22 2011, 18:29
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



вот код
Код
void main (void) {
__enable_interrupt();
uint32_t timeStamp =CntT1_ms;

char data [15];
uint8_t num = 0;
  
      
       putString("AT+CSQ\r"); //уровень приема сигнала

      
    for(;;){
      
         if ((CntT1_ms-timeStamp) >= LED_BLINK_PERIOD)
         {
           //off (LED);
           putString("AT\r");
           timeStamp =CntT1_ms;
         }    
      
       if ( hasinput() )
            {    
               data [num] = getchar();
              
               cpl (LED);
            }

  }
}


во- первых, странно, что ИАР ругается на варнинг на объявление массива char data[15];

Warning[Pe550]: variable "data" was set but never used D:\works\projects\Blink_LED mega8 +HT\main.c 102

И как только часть кода
data [num] = getchar();
включаю в работу (убираю комментарии),
отказывается работать часть кода между
main (); и

for (;;)

т.е.
putString("AT+CSQ\r");


Что за странное поведение?

Сообщение отредактировал Метценгерштейн - Jan 22 2011, 18:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Jan 22 2011, 22:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



на самом деле интересно и не понятно, зачем ИАР выкинул код.

Вот весь проект целиком.
http://files.mail.ru/6WP6WH

я имел ввиду, что если сделать запись
data [0] = getchar();

то программа отказывается выполнять то, что записано сразу после main()
т.е. она сразу глючит.

Ещё раз, глюки прошли как только вынес массив из вне main()

ИАР последней версии 5.51
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 22 2011, 23:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Метценгерштейн @ Jan 23 2011, 01:51) *
Ещё раз, глюки прошли как только вынес массив из вне main()

Не из main() а из стека. Перед тем, как начинать программировать следует ТВЕРДО усвоить,.что такое стеки и как они используются и соответственно, перед тем, как пихать что попало в стек, надо подумать, сколько памяти для стека/стеков выделить.




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   или глюк в IAR, или я что- то упускаю   Jan 22 2011, 18:29
- - OLEG_BOS   Цитата(Метценгерштейн @ Jan 22 2011, 20:2...   Jan 22 2011, 19:29
- - Dog Pawlowa   Мне даже две первые строчки непонятны. Разрешить ...   Jan 22 2011, 19:55
- - Метценгерштейн   прерывания используются для другой ф-ии- вывода ст...   Jan 22 2011, 19:59
|- - Dog Pawlowa   Цитата(Метценгерштейн @ Jan 22 2011, 22:5...   Jan 22 2011, 20:03
- - Метценгерштейн   что значит не беру, еще как беру, смотрите Кодif ...   Jan 22 2011, 20:10
|- - OLEG_BOS   Цитата(Метценгерштейн @ Jan 22 2011, 22:1...   Jan 22 2011, 20:16
- - Метценгерштейн   значение num меняется по плану, оно ++, но закомме...   Jan 22 2011, 20:20
|- - OLEG_BOS   Цитата(Метценгерштейн @ Jan 22 2011, 22:2...   Jan 22 2011, 20:24
- - Метценгерштейн   вот зараза то и, что он в данном случае наопти...   Jan 22 2011, 20:27
- - sigmaN   Цитатаон ругается на переменную data [], а это мас...   Jan 22 2011, 22:21
|- - OLEG_BOS   Цитата(zltigo @ Jan 23 2011, 01:38) Перед...   Jan 22 2011, 23:48
- - DpInRock   Наплевать что вы записываете что-т о в переменную....   Jan 22 2011, 23:20
- - rezident   Насчет putString("AT+CSQ\r"); не ув...   Jan 22 2011, 23:35
- - Метценгерштейн   хорошо, простой пример: есть некий Кодvoid main...   Jan 23 2011, 12:32
|- - Dog Pawlowa   Цитата(Метценгерштейн @ Jan 23 2011, 15:3...   Jan 23 2011, 12:58
|- - zltigo   QUOTE (Метценгерштейн @ Jan 23 2011, 15:3...   Jan 23 2011, 13:14
- - Метценгерштейн   читаю, читаю... пока не разобрался еще. Если есть ...   Jan 23 2011, 13:07
- - Метценгерштейн   Мне как- то лет в 18 инструктор по вождению говори...   Jan 23 2011, 13:24
|- - Dog Pawlowa   Цитата(Метценгерштейн @ Jan 23 2011, 16:2...   Jan 23 2011, 13:36
|- - zltigo   QUOTE (Метценгерштейн @ Jan 23 2011, 16:2...   Jan 23 2011, 13:41
- - Метценгерштейн   На самом деле, спасибо за то, что прояснили ситуац...   Jan 23 2011, 13:48
|- - zltigo   QUOTE (Метценгерштейн @ Jan 23 2011, 16:4...   Jan 23 2011, 13:51
- - Метценгерштейн   ldi r16, low(RAMEND) out SPL, r16 ;...   Jan 23 2011, 14:00
|- - zltigo   QUOTE (Метценгерштейн @ Jan 23 2011, 17:0...   Jan 23 2011, 14:35
- - Метценгерштейн   Получается, так. Я устанавливал только указатель н...   Jan 23 2011, 15:02
- - rezident   Метценгерштейн, любая работа должна приносить како...   Jan 23 2011, 20:39
|- - Метценгерштейн   rezident Спасибо, дошло до меня. Я же при вызове ...   Jan 24 2011, 08:50
- - sigmaN   покидание функции main - последняя операция, котор...   Jan 24 2011, 09:51
- - Метценгерштейн   хорошо, но программа же выходит из main, для того,...   Jan 24 2011, 10:29
- - sigmaN   Выход из функции и вызов другой функции - разные...   Jan 24 2011, 11:00
- - Метценгерштейн   т.е. вызываемая ф-я getchar(); не может передать ...   Jan 24 2011, 11:21
- - sigmaN   Нет. Возврат значения он на то и возврат, чтобы ве...   Jan 24 2011, 12:34
- - Метценгерштейн   Извиняюсь, похоже, торможу я хорошо Я, безусло...   Jan 24 2011, 13:44
|- - demiurg_spb   to Метценгерштейн: Вы кстати в курсе что в IAR-AVR...   Jan 24 2011, 16:49
- - sigmaN   Цитатабыло бы все нормально? Не было у меня все но...   Jan 24 2011, 14:17
- - Метценгерштейн   Да, спасибо Вам, и всем кто откликнулся за помощь....   Jan 24 2011, 14:19
- - sigmaN   Да да, главное не сдаваться.   Jan 24 2011, 14:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016