Hallo Leute, ich versuche ein programm im c zu schreiben. in meinem
programm möchte ich jede 70ms ungefährt ein interrupt aufrufen um das 5.
bit des Ports D(OC1A)Toggle. ich habe ein code geschrieben aber bei der
kompilierung habe ich 2 fehler meldung und ich verstehe nicht was die
fehler bedeutet. ich zeige hier Ihnen mein code und untern steht die
Fehler meldung. und ich bitte Ihre Hilfe P.S.: meine Platine ist die
ATmega16 von ATmel und ich bin eine new kommen im Bereich
Mikrocontroller Programmierung
und ich Bitte Ihre verständnis.
#include <avr/io.h>
#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#define isr(vector)
int main(void){
DDRD=0x32; /*pin 5 des Ports D setzen*/
TCNT=0x0000; /*Counter auf null initialisieren*/
OCR1A=0x03EA; /*es wird bis zu 1000 dez. gezählt*/
ISR_Timer(){
TIMSK=0x10; /*output Compare A Match Interrupt Enable*/
TIFR=0x10; /*Aufruf des Interrupt um das bit zu Toggle*/
}
while(1){
}
return 0;
}
Fehler meldung:
-------- begin --------
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
make.exe: *** No rule to make target `main.o', needed by `main.elf'.
Stop.
> Process Exit Code: 2
Ich glaube, Dir fehlen wirklich grundlegende Verständnisse. Du solltest Dir das Tutorial durcharbeiten. Da steht eigentlich alles drin. > TIMSK=0x10; /*output Compare A Match Interrupt Enable*/ Wenn Du den Compare-Ausgang OC1A toggeln willst, brauchst Du den Interrupt nicht freizugeben. In Deinem Fall sogar im Gegenteil: Wenn Du ihn freigibst, aber keine ISR dazu geschrieben hast, führt jedes Compare-Ereignis unweigerlich zu einem Reset! > TIFR=0x10; /*Aufruf des Interrupt um das bit zu Toggle*/ Damit löschst Du nur das Interrupt-Flag. Du kannst "den Interrupt" nicht auf diese Weise vom Programm aus "aufrufen".
Ach ja, die Fehlermeldung besagt eigentlich nur, dass Du vermutlich vergessen hast, bestimmte Einstellungen zu machen. Ich gehe davon aus, dass Du mit AVRStudio arbeitest. Da musst Du erst mal in den Configuration Options den Controllertyp (wichtigst, da sonst nicht bekannt ist, welche io.h eingebunden werden soll) und die CPU-Frequenz (in Deinem Fall eher egal, weil sie in Deinem Programm nicht verwendet wird) eingeben und solltest auch das Optimierungslevel auf -Os stellen (jedenfalls nicht auf -O0 lassen).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.