kompilasi program c untuk mikrokontroler ... pls help ....

N

nirmal_rockin

Guest
Hi ...
Aku sangat membutuhkan ..i got program ini somewher dari net dan saya telah mengedit baris itu untuk saya pengikut yang aku membangun .... tapi program menunjukkan beberapa kesalahan (dalam mikrokontroler yang digunakan adalah atmega16) dan aku benar-benar bingung mengenai file header 'delay.h' dan 'mega16.h' i mencoba menggunakan file header yang disediakan dalam avr_libc .. tapi itu menunjukkan beberapa kesalahan ....siapa pun dapat membantu saya menyelesaikan masalah ini ...
bagaimana saya dapat membuat program errorless ....
pls help me .....i dono banyak tentang Microcontrollers ....
terima kasih ...Quote:/************************************************* ****

Proyek: Line Follower

Chip type: ATmega16

Program type: Application

Clock frequency: 7.372800 MHz

Model memori: Kecil

External SRAM size: 0

Data Stack size: 256

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

/ / # define debug 1

# include <mega16.h>

# include <delay.h>

# ifdef debug

# include <stdio.h>

# endif

# define FWD 0xAA

# define REV 0x55

# define R 0x22

# define L 0x88

# define CW 0x99

# define CCW 0x66

# define STOP 0x00

# define B 0xFF

# define RSPEED OCR1AL

# define LSPEED OCR1BL

# define SPEED0 255

# define SPEED1 0

# define SPEED2 0

# define SPEED3 0

# define MAX 3

# define HMAX 1

void bergerak (unsigned char dir, penundaan unsigned char, unsigned char daya);

unsigned char i, rdev, ldev, ip, delay, dir, kekuasaan, dirl, sejarah [MAX], hcount = 0, rotpow;

# ifdef debug

unsigned char rep = 0, prev = 0;

# endif

void main (void)

(

/ / Input / Output Ports initialization

/ / Port A initialization

/ / Func7 = Dalam Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Dalam Func2 = Dalam Func1 = Dalam Func0 = Dalam

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

PORTA = 0x00;

DDRA = 0x00;

/ / Port B initialization

/ / Func7 = Dalam Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Dalam Func2 = Dalam Func1 = Dalam Func0 = Dalam

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

PORTB = 0x00;

DDRB = 0x00;

/ / Port C initialization

/ / Func7 = Dalam Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Dalam Func2 = Dalam Func1 = Dalam Func0 = Dalam

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

PORTC = 0x00;

DDRC = 0xFF;

/ / Port D initialization

/ / Func7 = Dalam Func6 = Dalam Func5 = Out Func4 = Out Func3 = Dalam Func2 = Dalam Func1 = Dalam Func0 = Dalam

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

PORTD = 0x00;

DDRD = 0x30;

/ / Timer / Counter 0 initialization

/ / Clock source: System Clock

/ / Clock value: Timer 0 Stopped

/ / Mode: Normal top = FFh

/ / OC0 output: Disconnected

TCCR0 = 0x00;

TCNT0 = 0x00;

OCR0 = 0x00;

/ / Timer / Counter 1 initialization

/ / Clock source: System Clock

/ / Clock value: 921,600 kHz

/ / Mode: Fast PWM atas = 00FFh

/ / OC1A output: Non-Inv.

/ / OC1B output: Non-Inv.

/ / Noise Canceler: Off

/ / Input Capture on Falling Edge

TCCR1A = 0xA1;

TCCR1B = 0x0A;

TCNT1H = 0x00;

TCNT1L = 0x00;

ICR1H = 0x00;

ICR1L = 0x00;

OCR1AH = 0x00;

OCR1AL = 0xFF;

OCR1BH = 0x00;

OCR1BL = 0xFF;

/ / Timer / Counter 2 initialization

/ / Clock source: System Clock

/ / Clock value: Timer 2 Stopped

/ / Mode: Normal top = FFh

/ / OC2 output: Disconnected

ASSR = 0x00;

TCCR2 = 0x00;

TCNT2 = 0x00;

OCR2 = 0x00;

/ / External Interrupt (s) initialization

/ / INT0: Off

/ / INT1: Off

/ / INT2: Off

MCUCR = 0x00;

MCUCSR = 0x00;

# ifdef debug

/ / USART initialization

/ / Communication Parameters: 8 Data, 1 Stop, No Parity

/ / USART Receiver: On

/ / USART Transmitter: On

/ / USART Mode: Asynchronous

/ / USART Baud rate: 57.600

UCSRA = 0x00;

UCSRB = 0x18;

UCSRC = 0x86;

UBRRH = 0x00;

UBRRL = 0x07;

# endif

/ / Timer (s) / Counter (s) Interrupt (s) initialization

TIMSK = 0x00;

/ / Analog komparator initialization

/ / Analog komparator: Off

/ / Analog komparator Input Capture oleh Timer / Counter 1: Off

ACSR = 0x80;

SFIOR = 0x00;

while (1) (

# ifdef debug

if (rep <255)

rep ;

if (prev! = Pina) (

prev = Pina;

printf ( "% u \ r", rep);

for (i = 0; i <8; i )

printf ( "% u \ t", (prev>> i) & 0x01);

rep = 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)

bergerak (R, 0.195 12 * rdev);

if (rdev <ldev)

bergerak (L, 0.195 12 * ldev);

if (rdev == ldev)

bergerak (FWD, 0.200);

)

else (

for (i = 0, dirl = 0; i <MAX; i ) (

if (sejarah == L)

(dirl ;)

)

if (rotpow <160) (rotpow = 160;)

if (rotpow <255) (rotpow ;)

if (dirl> HMAX)

(bergerak (CW, 0, rotpow);)

lain

(bergerak (CCW, 0, rotpow);)

)

);

)

void bergerak (unsigned char dir, penundaan unsigned char, unsigned char kekuasaan) (

PORTC = dir;

if (dir == L | | dir == R) (

hcount = (hcount 1)% MAX;

sejarah [hcount] = dir;

)

LSPEED = RSPEED = 255; / / kekuasaan;

/ / delay_ms (delay);

)
 
Los Frijoles wrote:

Bisakah Anda posting daftar kesalahan juga?
 
Yang terlihat seperti kesalahan makefile.Jika Anda membuat makefile Anda sendiri, pastikan bahwa menggunakan tab, bukan ruang untuk lekukan.Jika tidak, kemudian cobalah membuat makefile sendiri (ada puluhan tutorial di luar sana) dan melihat apakah itu bekerja dengan benar.

 
ok Sir tetapi adalah program yang benar ....

bahkan jika saya memperbaiki kesalahan di atas Saya mendapatkan beberapa kesalahan lainnya .....( tentang 25errors)
i think semua ini adalah karena hanya menghubungkan file lain yang tidak dilakukan dengan benar .. dan lemak i donno wat .....Ditambahkan setelah 11 menit:Ini adalah membuat file untuk program ..
################################################## #############################
# Makefile untuk proyek uji
################################################## #############################

# Umum Flags
PROYEK = sidang
MCU = atmega16
TARGET = trial.elf
CC = avr-gcc

CPP = avr-g

# # Pilihan umum untuk mengkompilasi, link dan perakitan aturan
UMUM =-mmcu = $ (MCU)

# # Kompilasi pilihan umum untuk semua kompilasi C unit.
CFLAGS = $ (UMUM)
CFLAGS =-Wall-gdwarf-2-Os-std = gnu99-funsigned-char-funsigned-bitfields-fpack-struct-fshort-enum
CFLAGS =-MD-MP-MT $ (* F). O-MF dep / $ (@ F). D

# # Majelis bendera spesifik
ASMFLAGS = $ (UMUM)
ASMFLAGS = $ (CFLAGS)
ASMFLAGS =-x assembler-with-cpp-Wa,-gdwarf2

# # Linker bendera
LDFLAGS = $ (UMUM)
LDFLAGS =-Wl,-Map = trial.map# # Intel Hex file bendera produksi
HEX_FLASH_FLAGS =-R. Eeprom-R. Sekering-R. Lock-R. Tanda tangan

HEX_EEPROM_FLAGS =-j. Eeprom
HEX_EEPROM_FLAGS = - set-section-flags =. eeprom = "alloc, beban"
HEX_EEPROM_FLAGS = - perubahan-bagian-ima. Eeprom = 0 - no-perubahan-peringatan# # Benda-benda yang harus dibangun untuk menghubungkan
OBJEK = trial.o

# # Benda-benda secara eksplisit ditambahkan oleh pengguna
LINKONLYOBJECTS =

# Build
all: $ (TARGET) trial.hex trial.eep trial.lss ukuran

# # Kompilasi
trial.o: .. / trial.c
$ (CC) $ (TERMASUK) $ (CFLAGS)-c $ <

# # Link
$ (TARGET): $ (OBJECTS)
$ (CC) $ (LDFLAGS) $ (OBJECTS) $ (LINKONLYOBJECTS) $ (LIBDIRS) $ (LIBS)-o $ (TARGET)

%. hex: $ (TARGET)
avr-objcopy-O ihex $ (HEX_FLASH_FLAGS) $ <$ @

%. eep: $ (TARGET)
-avr-objcopy $ (HEX_EEPROM_FLAGS)-O ihex $ <$ @ | | exit 0

%. LSS: $ (TARGET)
avr-objdump-h-S $ <> $ @

size: $ (TARGET)
@ echo
@ avr-size-C - MCU = $ (MCU) $ (TARGET)

# # Bersih sasaran
. Palsu: bersih
bersih:
-rm-rf $ (OBJEK) trial.elf dep / * trial.hex trial.eep trial.lss trial.map# # Other dependensi
-termasuk $ (shell mkdir dep 2> / dev / null) $ (wildcard dep / *)

 

Welcome to EDABoard.com

Sponsor

Back
Top