Atmel Studio

Hallo zusammen,

Ich habe schon sehr viel Zeit mit Arduinos verbracht, nun möchte ich einen schritt weiter gehen...
Ich würde gerne Mikrocontroller mit Atmel Studio Porgrammieren,
Ich habe auch schon zugriff auf meinen Atmega168 und ein kleines Programm :

#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>



int main(void)
{

	 DDRB = 0x20;
	
	 while(1)
	 {

		PORTB = 0x20; 
		
		_delay_ms(1200);

		PORTB = 0x00;

	
		_delay_ms(2200);
	
	 }

}

Nun meine Frage:

Bei Ardiuno IDE gibt es ja die möglichkeit einem Eingang oder Ausgang einen Namen zu geben:

int ledPin = 13;
 pinMode(ledPin, OUTPUT);

Kann ich solche namen auch bei Atmel Studio vergeben?
Wenn das geht, wie denn :slight_smile:

Danke für eure hilfe

Natürlich. Das ist doch nichts anderes als eine Variable oder Konstante. In beiden wird nur in C/C++ programmiert! Die Arduino Software ist nur eine API dafür. Keine andere Sprache

Du kannst in Atmel Studio auch Visual Micro installieren. Dann kannst du damit auch die Arduino Software verwenden :slight_smile:

Kann ich mit Visual Micro auch alle Funktionen noch verwenden?

Ich möchte mein Atmega168 über einen rs323 mit einem zweiten Atmega168 Sprechen lassen :slight_smile:

Was hat das eine mit dem anderen zutun? Das geht mit Atmel Studio genauso wie mit der Arduino IDE. Du musst aber schon so programmieren dass es geht.

Kann ich mit Visual Micro auch alle Funktionen noch verwenden?

Was verstehst du unter "alle Funktionen"?

Ja bei Arudino habe ich das schon am laufen aber ich möchte keinen Arduino verwenden sondern eine eigene schlatung (Print) generieren. Visual Micro ist nur für Arduino oder auch wenn ich nur den Chip Programmieren möchte :s ?
Ach ja deine Signatur gefällt mir schreib mir doch mal PN Preis und dein Wohnort (Schweiz oder Deutschland :slight_smile:

Visual Micro erlaubt es die die Arduino API in Atmel Studio zu verwenden. Das ist alles.

Dir ging aber eigentlich darum Pins Namen zu geben. Das ist eben keine Arduino Sache. Sondern ganz normales C/C++. Nur weil das jetzt eine Pin Nummer darstellt ist es trotzdem nicht anderes als jede andere Variable oder Konstante.

Ideal wäre es so:

const int ledPin = 13;

Oder in avr gcc eher:

const uint8_t ledPin = 13;

Ich werde es mal ausporbieren und hoffe ihr seit so gütig und beantwortet mir vieleicht noch die ein oder andere Frage :slight_smile:

Hallo zusammen, ich mal wieder :slight_smile:

Ich habe nun mein Entwickler board erfolgreich mit Atmel Studio und Visual Micro Programmiert, auch die Signatur ect. kann ausgelesen werden.

Nun habe ich 2 kleine Probleme:
Ich würde gerne nur den Chip (auf einem Steckbrett) Programmieren
Dazu habe ich einen Atmega168 auf das Steckbrett gesetzt und wie folgt angeschlossen:
https://www.google.ch/search?q=atmega+168+stand+alone&espv=2&biw=1745&bih=890&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiXnYDE_NHKAhUBkCwKHUZYBEcQ_AUIBigB#tbm=isch&q=isp+atmega168&imgrc=UyCkUT4Qm8hTqM%3A
Wenn ich nun die Spannung auslese mit Atmel Studio zeigt er mir 5V an, jedoch ist es nicht möglich die Signatur zu lesen oder auch zu Programmieren.
Ich denke irgendetwas habe ich falsch verdrahtet, kann mir jemand helfen? :slight_smile:

Gruss Schnibli

Avcc und Agnd müssen auch angeschlossen werden.
Jeweils bitte 1 Kerko an die Versorgungspins.
Also insgesamt 2

Wenn der Chip schon für einen Quarz gefused ist, dann muss der auch dran.
Reset darf ruhig einen 10K Pullup bekommen.
Wenn der Chip noch mit den 1MHz intern läuft, muss evtl. der ICSP Takt gesenkt werden.

So, hab jetzt mal alles Befolgt, jedoch ohne erfolg:
Zwischen 9 + 10 Quarz
von - auf 9 und von - auf 10 je einen 22 kerko
Und Angeschlossen wie hier:
http://www.avrfreaks.net/forum/help-avrdude-attiny2313-and-avrisps Post 7

Jedoch ohne Erfolg :s

http://www.avrfreaks.net/forum/help-avrdude-attiny2313-and-avrisps

hat ja auch keinen Erfolg, oder ? Da gehts auch nicht um einen 168.
Und wie dir was in Post #7 da helfen soll, sehe ich auch nicht.

(Falscher Link?)
Meinst du dieses Bild? (dein eigener Link):

Wenn der atmega168 schon mal ein Arduino war und also einen externen Quarz braucht, reicht das natürlich nicht.

Mit "22er kerko" meinst du hoffentlich nur 22pF, nicht nF. Sollte mit "22" beschriftet sein (wenn überhaupt), nicht "223".

Nimm von diesem Bild die linke Hälfte:

Für avrdude brauchst du die AVcc Seite (pin 22/20) nicht wirklich.

Vielen Dank für eure Bemühung, leider bin ich noch nicht weiter gekommen, im Anhan ein bild, was ich verdrahtet habe und die Fehlermeldung von Atmel Studio. Programmer ist: mysmartusb Light

Ich hoffe jemand kann mir helfen :s


fehler.JPG

Ich verwende einen MySmart USB light und keine Externe Stromversorgung

Edit:

Hab es entlich geschafft, die Verbindung steht und ich kann mit Atmel Studio und Visual Micro ein Programm hochladen:
/*Begining of Auto generated code by Atmel studio */
#include <Arduino.h>

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Nun der Uplaod zeigt keine fehler jedoch fängt die led Nicht an zu blinken.
Ich habe zum versuch auch den ISP getrennt und eine Extrerne Stromversorgung (5V und Ground) Angehängt. welche Schaltung benötige ich noch um die Led blinken zu lassen (Habe die LED an Ping 13 dann einen Wiederstand 120 Ohm auf minus gezogen.

gruss schnibli

Arduino Pin 13 ist Pin 19 am Prozessor. Hast du das beachtet?

Da fehlt der Reset Pullup und der 2te Kerko(aber das weißt du ja schon)

So alles geschaft :slight_smile: Danke euch.
Das Problem war der 10kOhm wiederstand :slight_smile: ....

Naja jetzt nur noch was kleines:

Wenn ich in Atmel studio delay(1000) eingebe sollte dies ja 1 sekunde Entsprechen oder?

Nun leider ist dem nicht so es sind ca. 15 Sekunden :s

hi,

wahrscheinlich sind's 16 sekunden und der controller läuft mit 1MHz. nimm mal den quarz weg, wenn er dann noch läuft, ist es so...

gruß stefan

Ja das ist so :slight_smile: und wie kann ich das ändern :slight_smile: sodass die Zeitangaben stimmen? :slight_smile:

Die Fuses richtig einstellen.

Wo kann man das nachlesen? finde leider nichts:s