На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (18) « Первая ... 11 12 [13] 14 15 ...  17 18 все  ( Перейти к последнему сообщению )  
    > Разбираемся с IAR , Обсуждаем небольшие коды на IAR.
      Цитата

      unsigned char count=8;

      Цитата

      unsigned char Keys = (~PORTB) & (4|8); /* состояние кнопок на RB2-RB3. Ждёт нажатия */

      определять такие ошибки пора бы уже и саму научиться:)
        potor, в тех местах так ошибки и остались
        ExpandedWrap disabled
          Rebuilding target Debug...
          Untitled1.c
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (21) : Error[Pe268]: declaration may not appear after executable statement in block
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (43) : Error[Pe268]: declaration may not appear after executable statement in block
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (45) : Error[Pe112]: expected "while"
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (46) : Warning[Pe223]: function declared implicitly
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (49) : Error[Pe079]: expected a type specifier
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (50) : Error[Pe065]: expected a ";"
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (51) : Warning[Pe128]: loop is not reachable from preceding code
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (54) : Error[Pe079]: expected a type specifier
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (55) : Error[Pe065]: expected a ";"
          C:\Documents and Settings\Administrator\My Documents\IAR проект\Новая папка\Untitled1.c (57) : Warning[Pe001]: last line of file ends without a newline
           
          Total number of errors: 7
          Total number of warnings: 3
          Цитата
          bizar, 26.03.04, 11:38
          do
          {
          tick(); /* НЕБОЛЬШОЙ ПРОМЕЖУТОК ВРЕМЕНИ, "не будем опрашивать кнопки слишком часто" */
          Keys = (~PORTB) & (4|8); /* состояние кнопок на RB2-RB3. Ждёт нажатия */
          }
          Keys >>= 1;
          while(PORTB & Bit(0)); /* если установлен бит 0, значит нажата кнопка на RB2 */
          Для do нет соответствующего while. Или Keys >>= 1; стоит не там, где нужно
            ПОПРОБУЙ ТАК:
            Цитата

            void TransmitByte(char Symbol)
            {
            unsigned int count = 8;// счетчик передаваемых бит данных
            PORTA &= 0xfe; //передаем стартовый бит
            do
            {
            TransmitBitDelay(); // задержка перед передачей следующего бита
            PORTA ^= (~Symbol) & 1; // выдаем очередной бит в COM
            Symbol >>= 1; //следующий бит
            count--;
            } while (count >0);
            TransmitBitDelay(); // задержка перед передачей следующего бита
            PORTA |= 1; //передаем стоповый бит
            }

            Цитата

            unsignet char Keys;
            main ()
            {
            TRISB = 4|8; /* RB2 - RB3 настраиваем на вход */
            PORTB = 0xfc; /* RB0 - RB1 настраиваем на вывод*/
            while(1)
            {
            do
            {
            tick(); /* НЕБОЛЬШОЙ ПРОМЕЖУТОК ВРЕМЕНИ, "не будем опрашивать кнопки слишком часто" */
            Keys = (~PORTB) & (4|8); /* состояние кнопок на RB2-RB3. Ждёт нажатия */
            }
            Keys >>= 1;
            while(PORTB & Bit(0)); /* если установлен бит 0, значит нажата кнопка на RB2 */
            while(1)
            {
            void TransmitByte(34) /* посылаем 34 */
            }
            while(PORTB & Bit(1)); /* если установлен бит 1, значит нажата кнопка на RB3 */
            while(1)
            {
            void TransmitByte(35) /* посылаем 35 */
            }
            }
            }
              Думаю нужно начать всё сначало?
              Прикреплённый файлПрикреплённый файл__________.rar (26.83 Кбайт, скачиваний: 440)
                в общем в моем IARe для AVR надо в режиме дебаггера сделать View/Disassembly, либо в Project/Options в закладке компилятора list ставишь галочку Assembler mnemonics, т е ты выслал не то, нужен ассемблерный код
                  potor, я этим покозал что ошибок море,
                  и не знаю как их исправить (уже всё перепробовал).
                    бл...
                    unsigned char Keys
                    :)

                    Добавлено в :
                    точку с запятой незабудь поставить:)
                      на будующее, в микроконтроллерных компиляторах, ввиду их недоделанности, следует обращать внимание на первую ошибку, остальные генерятся как правило от балды:)
                        Ещё остались ошибки.
                        Прикреплённый файлПрикреплённый файл__________.rar (21.64 Кбайт, скачиваний: 451)
                          ExpandedWrap disabled
                             
                            main () {
                               TRISB = 4|8;  /* RB2 - RB3 настраиваем на вход */
                               PORTB = 0xfc; /* RB0 - RB1 настраиваем на вывод*/
                               while(1) {
                                  do {
                                     tick(); /* НЕБОЛЬШОЙ ПРОМЕЖУТОК ВРЕМЕНИ, "не будем опрашивать кнопки слишком часто" */
                                     Keys = (~PORTB) & (4|8); /* состояние кнопок на RB2-RB3. Ждёт нажатия */
                                  } while( Keys == 0 );
                                  if(Keys & Bit(2))   /* если установлен бит 0, значит нажата кнопка на RB2 */
                                     TransmitByte(34); /* посылаем 34 */
                                  if(Keys & Bit(3))   /* если установлен бит 1, значит нажата кнопка на RB3 */
                                     TransmitByte(35); /* посылаем 35 */
                               }
                            }

                          этот код тебе писал ранее trainer:)
                            В нём ошибка:
                            ExpandedWrap disabled
                              if(Keys & Bit(2))

                            Сдесь выдаёт ошибку.
                              после #include <io16f84.h>
                              вставь строчку
                              #define Bit(x) 1<<(x)
                              дело в том что команды Bit нет, это макрос который мы определяем сами
                                Ok всё скомпелил без ошибок
                                теперь зашить и проверить.
                                  неееет, зашить и проверить неполучится, сначала надо подобрать числа, т е десятки там не пройдут:)
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (18) « Первая ... 11 12 [13] 14 15 ...  17 18 все


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0408 ]   [ 14 queries used ]   [ Generated: 18.07.25, 05:34 GMT ]