в програма за събиране на микроконтролер за ... Pls помогне ....

N

nirmal_rockin

Guest
Здрасти ...
Аз съм в спешната нужда ..Имам тази програма somewher от мрежата и съм го редактира за моята линия, които съм привърженик сграда .... но програмата показва някои грешки (микроконтролера използва, е atmega16) и аз съм напълно объркан за горния файл "delay.h" и "I mega16.h" се опита използвате заглавния досиетата, предвидени в avr_libc .. но той показва няколко грешки ....може някой да ми помогне решаването на този проблем ...
Как мога да се създаде errorless програма ....
Pls ми помогне .....Аз Доно много за микроконтролери ....
благодаря ти ...Цитат:/************************************************* ****

Проект: Line последовател

Чип тип: ATmega16

Тип на програмата: Прилагане

Тактова честота: 7.372800 MHz

Памет модел: Малки

Външни SRAM размер: 0

Данни стека размер: 256

************************************************** *** /

/ / # определят Debug 1

# включват <mega16.h>

# включват <delay.h>

# ifdef Debug

# включват <stdio.h>

# endif

# определят FWD 0xAA

# определят REV 0x55

# определят R 0x22

# определят L 0x88

# определят CW 0x99

# определят ККО 0x66

# определят STOP 0x00

# определят Б 0xFF

# определят RSPEED OCR1AL

# определят LSPEED OCR1BL

# определят SPEED0 255

# определят SPEED1 0

# определят SPEED2 0

# определят Speed3 0

# определят MAX 3

# 1 определят HMAX

нищожен ход (реж. грозен Чар, грозен Чар забавяне, грозен Чар мощност);

Чар и грозен, rdev, ldev, IP, забавяне, реж., мощност, dirl, история [MAX], hcount = 0, rotpow;

# ifdef Debug

грозен Чар представител = 0, предишна = 0;

# endif

нищожен основни (Void)

(

/ / Input / Output Пристанища инициализация

/ / Порт А инициализация

/ / Func7 = В Func6 = В Func5 = В Func4 = В Func3 = В Func2 = В func1 = В = В Func0

/ / State7 = T State6 = T State5 = T State4 = T State3 = T State2 = T State1 = T = T State0

PORTA = 0x00;

DDRA = 0x00;

/ / Порт Б инициализация

/ / Func7 = В Func6 = В Func5 = В Func4 = В Func3 = В Func2 = В func1 = В = В Func0

/ / State7 = T State6 = T State5 = T State4 = T State3 = T State2 = T State1 = T = T State0

PORTB = 0x00;

DDRB = 0x00;

/ / Порт С инициализация

/ / Func7 = В Func6 = В Func5 = В Func4 = В Func3 = В Func2 = В func1 = В = В Func0

/ / State7 = T State6 = T State5 = T State4 = T State3 = T State2 = T State1 = T = T State0

PORTC = 0x00;

DDRC = 0xFF;

/ / Порт Г инициализация

/ / Func7 = В Func6 = В Func5 = Няма Func4 = Няма Func3 = В Func2 = В func1 = В = В Func0

/ / State7 = T State6 = T State5 = 0 State4 = 0 State3 = T State2 = T State1 = T = T State0

PORTD = 0x00;

DDRD = 0x30;

/ / Таймер / брояч 0 инициализация

/ / Часовник източник: системен часовник

/ / Часовник стойност: таймер 0 Спряно

/ / Режим: Нормална върха = РРН

/ / OC0 изход: Disconnected

TCCR0 = 0x00;

TCNT0 = 0x00;

OCR0 = 0x00;

/ / Таймер / брояч 1 инициализация

/ / Часовник източник: системен часовник

/ / Часовник стойност: 921,600 KHz

/ / Режим: Бързо PWM върха = 00FFh

/ / OC1A изход: Non-Инв.

/ / OC1B изход: Non-Инв.

/ / Шум Canceler: Off

/ / Input за улавяне на падането Edge

TCCR1A = 0xA1;

TCCR1B = 0x0A;

TCNT1H = 0x00;

TCNT1L = 0x00;

ICR1H = 0x00;

ICR1L = 0x00;

OCR1AH = 0x00;

OCR1AL = 0xFF;

OCR1BH = 0x00;

OCR1BL = 0xFF;

/ / Таймер / брояч 2 инициализация

/ / Часовник източник: системен часовник

/ / Часовник стойност: Време 2 Спряно

/ / Режим: Нормална върха = РРН

/ / OC2 изход: Disconnected

АССР = 0x00;

TCCR2 = 0x00;

TCNT2 = 0x00;

OCR2 = 0x00;

/ / Външни прекъсвания (а) инициализация

/ / INT0: Off

/ / INT1: Off

/ / INT2: Off

MCUCR = 0x00;

MCUCSR = 0x00;

# ifdef Debug

/ / Инициализация USART

/ / Съобщение параметри: 8 Данни, 1 Спри, № Паритет

/ / USART Приемник: На

/ / USART предавателя: На

/ / USART Режим: Asynchronous

/ / USART Baud Rate: 57600

UCSRA = 0x00;

UCSRB = 0x18;

UCSRC = 0x86;

UBRRH = 0x00;

UBRRL = 0x07;

# endif

/ / Таймера (и) / Брояч (и) прекъсвания (а) инициализация

TIMSK = 0x00;

/ / Аналогов Comparator инициализация

/ / Аналогов Comparator: Off

/ / Аналогов Comparator Input Плен с таймер / брояч 1: Off

ACSR = 0x80;

SFIOR = 0x00;

докато (1) (

# ifdef Debug

IF (представител <255)

представител ;

IF (предишна! = PINA) (

Предишна = PINA;

printf ( "% U \ R", представител);

за (I = 0; I <8; I )

printf ( "% U \ т", (предишна>> I) & 0x01);

представител = 0;

)

# endif

IF (PINA! = 255) (

rotpow = 255;

ldev = rdev = 0;

IF (PINA.3 == 0)

rdev = 1;

IF (PINA.2 == 0)

rdev = 2;

IF (PINA.1 == 0)

rdev = 3;

IF (PINA.0 == 0)

rdev = 4;

IF (PINA.4 == 0)

ldev = 1;

IF (PINA.5 == 0)

ldev = 2;

IF (PINA.6 == 0)

ldev = 3;

IF (PINA.7 == 0)

ldev = 4;

IF (rdev> ldev)

ход (R, 0195 12 * rdev);

IF (rdev <ldev)

ход (L, 0195 12 * ldev);

IF (rdev == ldev)

ход (FWD, 0200);

)

иначе (

за (I = 0, dirl = 0; I <MAX; I ) (

ако (история == L)

(dirl ;)

)

IF (rotpow <160) (rotpow = 160;)

IF (rotpow <255) (rotpow ;)

IF (dirl> HMAX)

(ход (CW, 0, rotpow);)

в противен случай

(ход (ККО, 0, rotpow);)

)

);

)

нищожен ход (реж. грозен Чар, грозен Чар забавяне, грозен Чар мощност) (

PORTC = реж.;

IF (реж. == L | | == реж. R) (

hcount = (hcount 1)% MAX;

история [hcount] = реж.;

)

LSPEED = RSPEED = 255; / / мощност;

/ / delay_ms (закъснение);

)
 
Може ли да публикувате списък грешка, както и?

 
Лос Frijoles написа:

Може ли да публикувате списък грешка, както и?
 
Това прилича на Makefile грешка.Ако сте направили своя собствена Makefile, уверете се, че той използва вместо разделите на пространства за назъбвания.Ако не, тогава опитайте да създавате свои собствени Makefile (има десетки уроци там) и да видим дали тя работи правилно.

 
OK, сър, но е програмата правилно ....

Дори и да поправи грешка по-горе аз съм се няколко други грешки .....( за 25errors)
Мисля, че всичко това се дължи само свързването на други файлове, които не се извършва правилно .. и tats Уот и Donno .....Added след 11 минути:Това е да файл за програмата ..
################################################## #############################
# Makefile за проекта процес
################################################## #############################

# # Знамена Общи
ПРОЕКТ = проучване
MCU = atmega16
TARGET = trial.elf
CC = AVR-GCC

СРР = AVR-G

# # Опции общи за съставяне, връзка и монтаж правила
ОБЩА =-mmcu = $ (MCU)

# # Компилиране опции общи за всички единици, компилация C.
CFLAGS = $ (често)
CFLAGS =-Wall-gdwarf-2-OS-STD = gnu99-funsigned-харак-funsigned-bitfields-fpack-struct-fshort-enums
CFLAGS =-р-MP-МТ $ (* F). О-ДФ DEP / $ (@ F). Г

# # Събрание специфични флагове
ASMFLAGS = $ (често)
ASMFLAGS = $ (CFLAGS)
ASMFLAGS =-х асемблер-с-CPP-WA,-gdwarf2

# # Знамена Linker
LDFLAGS = $ (често)
LDFLAGS =-WL,-сайта = trial.map# # Intel Hex Досието на производството знамена
HEX_FLASH_FLAGS =-R. EEPROM-R. Предпазител-R. Заключване-R. Подпис

HEX_EEPROM_FLAGS =-J. EEPROM
HEX_EEPROM_FLAGS = - да сечение флагове на =. EEPROM = "alloc, товара!"
HEX_EEPROM_FLAGS = - промяна сечение-лма. EEPROM = 0 - не с промяната на предупреждения# # Обекти, които трябва да бъдат построени, за да свържат
ОБЕКТИ = trial.o

# # Обекти изрично, добавени от потребителя
LINKONLYOBJECTS =

# # Билд
всички: $ (TARGET) trial.hex trial.eep trial.lss размер

# # Компилиране
trial.o: .. / trial.c
$ (CC) $ (вкл.) $ (CFLAGS)-C $ <

# # Линк
$ (TARGET): $ (обекти)
$ (CC) $ (LDFLAGS) $ (обекти) $ (LINKONLYOBJECTS) $ (LIBDIRS) $ (LIBS)-о $ (TARGET)

%. Hex: $ (TARGET)
AVR-objcopy-О ihex $ (HEX_FLASH_FLAGS) $ <$ @

%. EEP: $ (TARGET)
-AVR-objcopy $ (HEX_EEPROM_FLAGS)-О ihex $ <$ @ | | изход 0

%. LSS: $ (TARGET)
AVR-objdump-з-S $ <> $ @

размер: $ (TARGET)
@ ехо
@ AVR-размер-C - MCU MCU = $ () $ (TARGET)

# # Чисто цел
. Фалшив: чисти
чист
RM-RF-$ (обекти) trial.elf DEP / * trial.hex trial.eep trial.lss trial.map# # Други зависимости
-включва $ (черупка mkdir DEP 2> / Dev / NULL) $ (маска DEP / *)

 

Welcome to EDABoard.com

Sponsor

Back
Top