Atmel Studio 7.0 einbinden von avr/io.h klappt nicht

#4724951
Lesenswert?

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
#4724970
Lesenswert?

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
Gast #4724985
Lesenswert?

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.
Gast #4724990
Lesenswert?

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.
#4724991
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren