Hallo, Ich habe vollgendendes Problem: Ich würde gerne mein Arduino Uno in C oder C++ Programmieren. Als Programm verwende ich Atmel Studio 6.2. Und ich möchte weiterhin über USB programmiern, da ich kein Programmiergerät habe. wie Stell ich das an?
Der Trick für Leute die lieber ein wenig mehr Aufwand haben als einen Programmer für 10€ zu bestellen: kopier deinen Code in die arduino IDE und programmier das Board weiterhin damit ;)
Tipp google doch mal avrdude + atmel studio oder visual studio + external programm Man dazu gibt es sogar Videos auf youtube!
Eduard Scheske > Tipp google doch mal avrdude + atmel studio > oder visual studio + external programm Bei mir funktionieren die Lösungen die mir Google liefert nicht, da die nötigen Treiber nach dem ausschalten jedesmal gelöscht werden...
Du programmierst deinen Arduino immer in C/C++. Auch in der Arduino IDE kannst du weitestgehend auf die Arduino Bibliothekt verzichten. Lediglich die Sache mit setup() und loop() ist fest vorgegeben. Ansonsten guck dir die Arduino Extension für das Atmel Studio an. Oder bau dir einen Post-Build Prozess ein, der automatisch nach jedem compilieren avrdude aufruft, um das Programm zu übertragen oder bastel dir eine Batch Datei, um das manuell zu machen.
Ich bin nach der folgenden Anleitung vorgegangen und es klappt ohne Probleme: http://cutmywire.wordpress.com/2013/07/21/arduino-und-co-mit-atmel-studio-nutzen/
Du brauchst keinen Programmer bestellen, sondern mit dem Bootloader vom Arduino das Programm hinunterladen- Das Buch Powerprojekte mit Arduino und C ISBN-10: 3645651314 zeigt dafür super Beispiele. Ich halte es für das beste yC Buch.
Hubert G. schrieb: > http://xloader.russemotto.com/ Hat irgendwer erfahrungen mit dem programm? Funktioniert das gut oder gibt es irgentwelche bugs? das mit den external tools in atmel studio hab ich schon ausprobiert nur kommt bei mir ein fehler: stk500_getsync(): not in sync: resp=0x00
Anton B. schrieb: > Hubert G. schrieb: >> http://xloader.russemotto.com/ > > Hat irgendwer erfahrungen mit dem programm? > Funktioniert das gut oder gibt es irgentwelche bugs? > > das mit den external tools in atmel studio hab ich schon ausprobiert nur > kommt bei mir ein fehler: > > stk500_getsync(): not in sync: resp=0x00 Dir ist klar, dass Du den Arduino-Bootloader im AVR brauchst? Ich kannte den Xloader bis gestern auch nicht und habe ihn gestern noch ausprobiert. Allerdings klappte der Upload zunächst nicht. Was ich nicht berücksichtigt hatte: Ich hatte mein Arduino-Board (UNO R3) vorher mittels des ISP-Headers direkt aus Studio geflasht und dabei den Bootloader zerschossen. Xloader ging deshalb nicht und die Original-Arduino Software ging natürlich auch nicht mehr. Erst nachdem ich den Bootloader (optiboot) wieder geflasht hatte, funktionierte der Xloader. Deshalb: Daumen hoch für das Programm... Gruß, Thomas
Anton B. schrieb: > das mit den external tools in atmel studio hab ich schon ausprobiert nur > kommt bei mir ein fehler: > > stk500_getsync(): not in sync: resp=0x00 Welchen Arduino hast du und was hast du bei External Tools in Arguments stehen?
Joachim K. schrieb: > da die > nötigen Treiber nach dem ausschalten jedesmal gelöscht werden... Bitte was?
für den uno sind die passenden parameter -p m328p -c arduino -P \\.\COMX -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
Andy B. schrieb: > Anton B. schrieb: >> das mit den external tools in atmel studio hab ich schon ausprobiert nur >> kommt bei mir ein fehler: >> >> stk500_getsync(): not in sync: resp=0x00 > > Welchen Arduino hast du und was hast du bei External Tools in Arguments > stehen? Commands C:\Users\Administrator\Desktop\avrdude\avrdude.exe Arguments -CC:\Users\Administrator\Desktop\avrdude\avrdude.conf -patmega328p -carduino -P\\.\COM4 -b160000 - Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i avrdude.exe und avrdude.conf hab ich aus dem Arduino Ordner.
Thomas T. schrieb: > Anton B. schrieb: >> Hubert G. schrieb: >>> http://xloader.russemotto.com/ >> >> Hat irgendwer erfahrungen mit dem programm? >> Funktioniert das gut oder gibt es irgentwelche bugs? >> >> das mit den external tools in atmel studio hab ich schon ausprobiert nur >> kommt bei mir ein fehler: >> >> stk500_getsync(): not in sync: resp=0x00 > > Dir ist klar, dass Du den Arduino-Bootloader im AVR brauchst? > > Ich kannte den Xloader bis gestern auch nicht und habe ihn gestern noch > ausprobiert. Allerdings klappte der Upload zunächst nicht. > > Was ich nicht berücksichtigt hatte: Ich hatte mein Arduino-Board (UNO > R3) vorher mittels des ISP-Headers direkt aus Studio geflasht und dabei > den Bootloader zerschossen. Xloader ging deshalb nicht und die > Original-Arduino Software ging natürlich auch nicht mehr. > > Erst nachdem ich den Bootloader (optiboot) wieder geflasht hatte, > funktionierte der Xloader. Deshalb: Daumen hoch für das Programm... > > Gruß, > Thomas ich habe den XLoader auch ausprobiert. Auf jedenfall blink die LED wenn ich es Uploade, aber es kommt nicht der Gewünschte effekt. kann es sein das es an meinem C Code liegt? #include <avr/io.h> #ifndef F_CPU #define F_CPU 16000000UL /* Quarz mit 16 Mhz */ #endif #include <util/delay.h> int main() { DDRB = ( 1 << DDB0 ) | ( 1 << DDB5 ); while(1) { PORTB |= ( 1 << PB0 ); _delay_ms(1000); PORTB |= ( 1 << PB5 ); _delay_ms(100); } return 0; }
Was für ein Effekt soll denn eintreten? PB0 und PB5 sind auf high und dann?
Hubert G. schrieb: > Was für ein Effekt soll denn eintreten? > PB0 und PB5 sind auf high und dann? Ja richtig, ist das dein kein effekt? Folgendes passiert: Die LED an PB0 Blink sehr schwach. Die LED an PB5 leuchtet gar nicht.
Anton B. schrieb: > Die LED an PB0 Blink sehr schwach. > Die LED an PB5 leuchtet gar nicht. Es würde mich interessieren wie die Led an PB0 schwach blinkt wenn sich der Ausgang nicht verändert.
Okay bei diesem Code:
#include <avr/io.h>
#ifndef F_CPU
#define F_CPU 16000000UL /* Quarz mit 16 Mhz */
#endif
#include <util/delay.h>
int main()
{
DDRB = ( 1 << DDB0 ) | ( 1 << DDB5 );
while(1)
{
PORTB |= ( 1 << PB0 );
_delay_ms(1000);
PORTB |= ( 1 << PB5 );
_delay_ms(1000);
PORTB |= ( 0 << PB0 );
_delay_ms(1000);
PORTB |= ( 0 << PB5 );
_delay_ms(1000);
}
return 0;
}
Passiert dass:
Die LED an PB0 geht sofort an, und kurz darauf die LED an PB5. Dann
passiert nichts mehr..
eins hat es gebracht, die LEDs laufen jetzt auf voller helligkeit.
Hubert G. schrieb: > Anton B. schrieb: >> Die LED an PB0 Blink sehr schwach. >> Die LED an PB5 leuchtet gar nicht. > > Es würde mich interessieren wie die Led an PB0 schwach blinkt wenn sich > der Ausgang nicht verändert. Ja das habe ich mich auch gefragt!
>> Welchen Arduino hast du und was hast du bei External Tools in Arguments >> stehen? > > > > > Commands > C:\Users\Administrator\Desktop\avrdude\avrdude.exe > > Arguments > -CC:\Users\Administrator\Desktop\avrdude\avrdude.conf -patmega328p > -carduino -P\\.\COM4 -b160000 - > Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i > > avrdude.exe und avrdude.conf hab ich aus dem Arduino Ordner. Ach ja ich hab den Arduino UNO
So wird es blinken.
1 | PORTB |= ( 1 << PB0 ); |
2 | _delay_ms(1000); |
3 | PORTB |= ( 1 << PB5 ); |
4 | _delay_ms(1000); |
5 | PORTB &=~ ( 1 << PB0 ); |
6 | _delay_ms(1000); |
7 | PORTB &=~ ( 1 << PB5 ); |
8 | _delay_ms(1000); |
Du solltest mal das AVR-Tutorial lesen.
Hubert G. schrieb: > So wird es blinken. >
1 | > PORTB |= ( 1 << PB0 ); |
2 | > _delay_ms(1000); |
3 | > PORTB |= ( 1 << PB5 ); |
4 | > _delay_ms(1000); |
5 | > PORTB &=~ ( 1 << PB0 ); |
6 | > _delay_ms(1000); |
7 | > PORTB &=~ ( 1 << PB5 ); |
8 | > _delay_ms(1000); |
9 | >
|
> Du solltest mal das AVR-Tutorial lesen.
Oh shit, dass hab ich überlesen das bits auf LOW setzten analog
funktioniert.
Kurz geändert, und.... Yeah es läuft!
Danke schön!!!
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.