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

 
 
> Ошибки в коде, Ошибки в коде
Makeda
сообщение Oct 1 2012, 13:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 9-08-12
Пользователь №: 73 076



Пишу программу для AT89S53. Выдает ошибки при использовании функций. В чем может быть проблема?

Код
#include <reg8253.h>

unsigned char Total;        
unsigned char Loops;        
bit TimerOK;                 


void main(void)  
               {
      
                    Timer0();
                 Delay();      
               }    
                        
void Timer0(void)
    {
    
    TCON=0x20;     //    Cleared to use timer 1 overflow as receive clock for serial port in mode 1 o
                 //  Set to use Timer 2 overflow as receive clock for serial port in mode 1 or 3.             
    TMOD=0x01;     // Timer enable up/down mode                                                          
    
    TL0=0;         // Low byte register Timer 0
    TH0=0;         // Hight byte register Timer 1                                                          
    
    TR0=1;       // run Timer 0
        
    }

void Delay(void)
      {
         unsigned char i;      
       for (i=0; i< 100;i++)
      
         {
             Loops++;        
         }                   
      }


Цитата
TIMER.C(12): warning C206: 'Timer0': missing function-prototype
TIMER.C(13): warning C206: 'Delay': missing function-prototype
TIMER.C(19): error C231: 'Timer0': redefinition
TIMER.C(31): error C231: 'Timer0': redefinition
TIMER.C(34): error C231: 'Delay': redefinition
TIMER.C(43): error C231: 'Delay': redefinition
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Oct 1 2012, 15:49
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Makeda @ Oct 1 2012, 17:35) *
TIMER.C(12): warning C206: 'Timer0': missing function-prototype
TIMER.C(13): warning C206: 'Delay': missing function-prototype
TIMER.C(19): error C231: 'Timer0': redefinition
TIMER.C(31): error C231: 'Timer0': redefinition
TIMER.C(34): error C231: 'Delay': redefinition
TIMER.C(43): error C231: 'Delay': redefinition

Так внятно же написано, что нет прототипов функций Timer0 и Delay. Оформите код по стандарту. До первого вызова функции должен быть объявлен её прототип. Тем более , что функции могут быть реализованы в разных файлах проекта. Для этого часто используют заголовочные файлы. На форуме обсуждалось не раз.

Предложение уважаемого kovigor'а может не помочь для некоторых компиляторов (их настроек). Имеется в виду strict-prototypes, missing-prototypes.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:28
Рейтинг@Mail.ru


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