Hallo an Alle :) ich benutze Windows 10 und einen Atmega8 16-PU mit einem ISP Programmer der als STK500 Programmer erkannt wird. Die Übertragung funktioniert soweit auch. ich habe "normal" die Bib avr/io.h eingebunden (code folgt) zudem habe ich delay.h eingebunden. wenn ich auf delay.h klicke zeigt er mir oben in der Leiste den ganzen Pfad an, bei io.h tut er es nicht, zudem kann ich mit "goto Implementation" nicht zu der Bib kommen. ich denke das sie so in Wirklichkeit garnicht eingebunden ist und habe dann immer avr/iom8.h extra nochmal eingebunden. (habe geprüfugt ob die datein alle existieren und das tun sie) habe nun gesehen das in der VA View neben io.h (unresolved) steht nach etwas suche habe ich dieses hier gefunden: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Mor Shuk wrote on Fri, 13 April 2012 01:50 is there any chance you could give me a more detailed intruction on how to do this?! cause im trying and jut cant get it done...(working eclipse on ubuntu 11.10) - Open Project Properties->C/C++ Build->Environment - click Select.. and choose LANG - use empty value for LANG - repeat above step for LANGUAGE - repeat above step for LC_ALL but use the value en_GB.UTF-8 Rebuild project and index <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ich verstehe aber nicht wirklich was ich tun soll? es scheint ja die sprache irgendwie falsch eingstellt zu sein... meinen die einen ordner im explorer oder ist das im atmel studio zu ändern? jemand schon erfahrung hiermit gemacht ? (ich bin etechnik student im 2ten Semester wir haben leider Mikrokontroller noch nicht behandelt :D ) Vielen Dank und Liebe Grüße
:
Verschoben durch Moderator
Hast du denn einen Prozessor ausgewählt? io.h verzweigt auf die verschieden Prozessoren, dafür muss er aber bekannt sein.
Beim Start des Projektes habe ich Atmega8 ausgewählt. kann man denn irgendwie prüfen ob das richtig geklappt hat?
Kennis B. schrieb: > Beim Start des Projektes habe ich Atmega8 ausgewählt. > kann man denn irgendwie prüfen ob das richtig geklappt hat? schreibe doch einfach mal eine kleine Blink-Programm.
also ich hatte folgendes Programm geschrieben das so auch funktionierte: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /* * Test1.c * * Created: 22.08.2016 21:54:36 * Author : kennis */ #define F_CPU 1000000UL #include <avr/io.h> //#include <C:/Program Files (x86)/Atmel/Studio/7.0/toolchain/avr8/avr8-gnu-toolchain/avr/include/avr /io.h> #include <stdint.h> // Standard Datentypen einbinden #include <kennis.h> // funktion Siebensegment #include <util/delay.h> #include <avr/interrupt.h> uint8_t isa; uint8_t zeitzaehler = 0; uint8_t zeitzaehler2 = 0; int main(void) { DDRD = (1 << DDD0) | (1 << DDD1) | (1 << DDD2) | (1 << DDD3) | (1 << DDD4) | (1 << DDD5) | (1 << DDD6) | (1 << DDD7); PORTC = (1 << DDC6) | (1 << DDC5) | (1 << DDC4) | (1 << DDC3) | (1 << DDC2); // Alle Eingänge am PortC mit PullUp Widerstand schalten TCCR0 = (1<<CS02); // Overflow Interrupt erlauben TIMSK |= (1<<TOIE0); // Global Interrupts aktivieren sei(); /* Replace with your application code */ while (1) { if (zeitzaehler>10) { zeitzaehler2++; zeitzaehler = 0; } if(zeitzaehler2>9) zeitzaehler2=0; isa = zeitzaehler2; PORTD = siebensegment(isa); } } ISR (TIMER0_OVF_vect) { zeitzaehler++; } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Hier hatte ich nun delay.h nicht benutzt. delay.h funktionierte nämlich leider nicht. ich habe da den Zusammenhang zu der fehlenden Initialisierung von io.h gezogen
Kennis B. schrieb: > Hier hatte ich nun delay.h nicht benutzt. delay.h funktionierte nämlich > leider nicht. und was funktioniert da nicht?
die funktion _delay_ms hat nichts gemacht das programm ist da einfach gestoppt und ging nicht weiter... obwohl die F_CPU definiert war. ist es denn normal das er bei io.h den Pfad nicht anzeigt?
Kennis B. schrieb: > die funktion _delay_ms hat nichts gemacht das programm ist da einfach > gestoppt und ging nicht weiter... obwohl die F_CPU definiert war. merkwürdig, gab es eine Warnung beim build? > ist es denn normal das er bei io.h den Pfad nicht anzeigt? keine Ahnung, hat mich noch nie interessiert. Sollte aber keine Rolle spielen, weil das nur das Studio betrifft.
Kennis B. schrieb: > die funktion _delay_ms hat nichts gemacht das programm ist da einfach > gestoppt und ging nicht weiter... obwohl die F_CPU definiert war. Nachtrag: Hast du wirklich lange genug gewartet? Die Simulation ist nicht in Echtzeit. Und wenn du keine Optimierung aktiviert hast dauert es noch länger.
leider gab es weder eine Fehler noch eine Warn meldung Nachtrag: habe nun mal folgenden code getestet: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /* * 16bit timer.c * * Created: 19.09.2016 12:34:36 * Author : kennis */ #define F_CPU 1000000UL #include <avr/io.h> #include <kennis.h> // funktion Siebensegment #include <util/delay.h> int main(void) { DDRD = (1 << DDD0) | (1 << DDD1) | (1 << DDD2) | (1 << DDD3) | (1 << DDD4) | (1 << DDD5) | (1 << DDD6) | (1 << DDD7); PORTC = (1 << DDC6) | (1 << DDC5) | (1 << DDC4) | (1 << DDC3) | (1 << DDC2); // Alle Eingänge am PortC mit PullUp Widerstand schalten while(1) { PORTD = 0xff; _delay_ms(1000); PORTD = 0x00; } } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< das müsste doch funktionieren oder nicht? Nachtrag Nachtrag: alle Leds gehen an und nicht wieder aus am Port D
:
Bearbeitet durch User
Kennis B. schrieb: > das müsste doch funktionieren oder nicht? Versuch es doch mal so:
1 | while(1) |
2 | {
|
3 | PORTD = 0xff; |
4 | _delay_ms(1000); |
5 | PORTD = 0x00; |
6 | _delay_ms(1000); |
7 | }
|
Kennis B. schrieb: > while(1) > { > PORTD = 0xff; > _delay_ms(1000); > PORTD = 0x00; > } dann überlege mal was Genau passiert, oder kannst du µ-Sekunden mit dem Auge sehen?
oh Gott peinlich:D das funktioniert nun, tut mir leid :D ich finde es immer noch komisch das er mir den Pfad nicht anzeigt aber solange es funktioniert ist ja alles gut. vielen Dank für eure schnelle Hilfe :) (hatte in C programmierung nur ne 2,7 :D )
:
Bearbeitet durch User
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.