PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C Beispielprogramm flashen



Da_Vinci13
02.02.2009, 18:58
Hi,
Ich hab jetzt das RN-Control vor mir liegen und das von WINAVR installierte Programmers Notepad geöffnet...
Dazu hab ich noch ein MK3 welchen ich direkt mit dem RN-Control und dem USB verbinden kann...
Wie kann ich jetzt die headerdatei erstellen und nachher das C Beispielprogramm schreiben und auf das RN Control flashen?

Irgendwie kann ich nirgends sowas finden wie "Headerdatei erstellen"...
Im Internet hab ich schon nach einer Lösung gesucht, aber irgendwie nichts gefunden... Und die CD welche mit dem RN-Control mitgeliefert wurde hilft mir dabei auch nicht weiter, da da nur gezeigt wird wie ich das alles mit einem Bascom compiler machen kann, aber ich will ja mit C arbeiten...
Und noch eine Frage:
Ist der Compiler eigentlich im Programmers Notepad?

Würde mich über Antworten freuen!

Grüsse!

pinsel120866
02.02.2009, 19:16
Hallo,

wenn du ein neues RN-Control hast, sind die Fuses schon richtig gesetzt, auch ein Bootloader für Serielles Flashen ist drauf.

Zum Programmieren würde ich dir AVR Studio 4 empfehlen, wenn du einen Windows PC hast.

oberallgeier
02.02.2009, 19:29
Du schaust vielleicht etwas zu wenig in die Suchfunktion und ins RNWiki.

Arbeite mal die Tutorials durch (DURCH ARBEITEN), die ich in diesem Posting aufgelistet (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=413294#413294) habe. Dort stehen genau die Antworten zu den Fragen, die Du gerade gestellt hast. Auch Zweck, Inhalt und Erstellung der Headerdateien wird dort erläutert.

(Anmerkung: Momentan ist das RN-Wiki
https://www.roboternetz.de/wissen/index.php/Hauptseite
offenbar etwas out of order - nicht verfügbar.)

Da_Vinci13
02.02.2009, 21:18
Hi,
Danke für die Antworten!




Zum Programmieren würde ich dir AVR Studio 4 empfehlen, wenn du einen Windows PC hast.

Muss ich AVR Studio 4 nehmen oder geht das auch mit Programmers Notepad?
Ich habe Windows Vista und das Unterstüzt das irgendwie nicht...
Oder kennst du vielleicht sonst noch was worauf ich programmieren kann und das Programm dann anschliessend flashen?

Grüsse!

oberallgeier
02.02.2009, 22:22
Hi Da_Vinci13


... Muss ich AVR Studio 4 nehmen oder geht das auch mit Programmers Notepad ...
Soweit ich weiß,
>> ist Programmers Notepad kein Compiler, sondern ein Editor
>> hatte Dir Gock am: 27 Dez 2008 geschrieben
AVRStudio, WinAVR und Assembler geht alles unter Vista. Es gibt noch PonyProg, AVRDude und und und... Google!!! Es gibt nicht viel, das auf Vista nicht geht.
Und die Suchfunktion, die ich Dir oben empfohlen hatte, hätte Dir gezeigt, (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=343118#343118) dass für Vista eine neue Version des AVRStudio empfehlenswert ist.

Da_Vinci13
03.02.2009, 09:29
Hi,
Danke für die Links!
Ich weiss, er hat mir das mal geschrieben, aber bei mir geht das wirklich nicht.
Wenn ich AVR Studio 4.13.557 installiert habe und nachher anwenden möchte steht "Sie brauchen dafür AVR Studio 4.13"
Also wollte ich das auch installieren, aber dann stand:
"Der Angegebenen Datei ist keine Verwendung zur Verfügung"

Grüsse!

Da_Vinci13
04.02.2009, 14:11
Hi,
Ich hab mir jetzt AVR Studio 4.15 installiert! Erfolgreich! Danke für die Hilfe!
Jetzt taucht aber gleich eine weitere Frage auf:
Wenn ich jetzt da die Plattform wählen muss taucht eine Liste auf von verschiedenen Plattformen:
STK500 or AVRISP
JTAG ICE
JTAGICE mkll
AVRISP mkll
AVR Dragon
STK600
AVR ONE!

Ich denke mal ich sollte STK500 or AVRISP nehmen, aber wenn ich das an klick dann kommen verschiedene Ports:
Auto
COM1
...
COM9

Jedoch nirgends USB und ich will ja über USB programmieren...

Bei den restlichen kommt in der Liste USB (ausgeschlossen JTAG ICE)

Kann ich da einfach eines auswählen in welchem USB steht?

Würde mich über eine Antwort freuen!

Grüsse!

EDIT: gelöst

Da_Vinci13
04.02.2009, 20:59
Hi,
Ich hab jetzt den ganzen Nachmittag im Internet rum recherchiert und auch wieder einiges herausgefunden! Aber ich habe immer ein Problem:

Wenn ich eine Datei schreibe, danach mit .h abspeichere und sie anschliessend als Headatei erstellen will, dann wird sie nie zu einer Headerdatei, sondern immer zu "External Dependicies"...
Um mein Problem einbisschen genauer zu schildern:
Ich schreibe eine Datei Headerdatei.h und speichere diese anschliessend
Ich erstelle ein neues Projekt
Ich geb in "include Derictories" den Pfad von Headerdatei.h an
Ich schreibe:
...
include "Headerdatei.h"
...

Und es gibt beim compilieren einen Fehler...
Ich weiss weshalb es beim compilieren einen Fehler gibt:
Es hat verschiedene Ordner gleich neben dem Editor fenster, in welchem ich ein Programm schreiben kann. Unteranderm auch den Ordner "Header Files"
Dort hat es aber die Datei Headerdatei.h nicht drin. Sondern diese hat es in External Dependencies.
Weiss jemand warum das so ist?

Würde mich über eine Lösung riesig freuen!

Grüsse!

oberallgeier
04.02.2009, 21:50
Hi Da_Vinci13

mal in Kurzform:

Schreib eine Headerdatei etwa mit dem Inhalt (dies nur als Beispiel, auszugsweise, aus einer *.h-Datei die ich grad parat habe) Variablendeklarationen, Funktionsprototypen:


/* Sicherung 15sep08 1120 ...C1..\m168D_10\m168D_com_10x80.c
================================================== =================================
================================================== =================================
Target MCU : M168
Target Hardware : div, z.B. flex168, m168D
Target cpu-frequ. : In der Quelle wählbar
================================================== =================================
Enthaltene Routinen:
KEINE - nur Variablendefinitionen
================================================== =================================
*** Versionsgeschichte:
====================
x82 29Jan09 Iz_diff0 wird im Test als Null angezeigt: unsigned-Problem?
ie_mot12 (-34?) wird als 63... angezeigt: unsigned-Problem?
....
x00 27jan08 00:ff Erster Aufbau von \2-drehz-mess\r2d_common_x00.h

Original: ...C1..\2_drehz-mess\ -
================================================== =================================
*** Aufgabenstellung : Initialisierung und Abarbeitung von Interuptroutinen für
die Programmsammlung zum R2D2cd
================================================== ============================== */



/*================================================= =================================
================================================== =================================
================================================== ============================== */
/*##### Variablenliste, global #####*/
/*================================================= =================================
================================================== =================================
================================================== ============================== */


/*================================================= =================================
Motordaten: Steuerung, Motortests
================================================== ============================== */
uint8_t imot = 1, kre = 1, kli = 1;
uint8_t min = 15, max = 122;
uint16_t mosore = 20, mosoli = 20; // Sollfahrt rechts und links
uint8_t moffre = 0, moffli = 0; // Geschwindigkeitsoffset Motor re/li
volatile uint8_t most12 = 0, most34 = 0; // Motoransteuerwert / Absolutwert
// vgl. zu most oben mosore/~li, moffre/~li etc.
volatile uint16_t stupsi12=0, stupsi34 = 0; // Sollwert Motoransteuerung
// = Führungsgröße w
volatile uint16_t tupsi12=0, tupsi34 = 0; // Istwert Motor
// = Regelgroesse x (= Iz_diff0)
// volatile float e_mot12, esum12, y12; // für Regelalgorithmus
volatile int16_t ie_mot12, iesum12, iy12; // für Regelalgorithmus
volatile int16_t idrz12, ndrz12; // Ist-/Solldrehzahl

volatile int16_t ie_mot34, iesum34, iy34; // für Regelalgorithmus
volatile int16_t idrz34, ndrz34; // Ist-/Solldrehzahl

uint16_t Iservo; // Counter für Regelfrequenz


/*================================================= =================================
Encoderbedienung und Zeitdaten
================================================== ============================== */
/*Ab rev x42: Indizes f EXT-INT0 + EXT-INT1 angepasst: 0 und 1 statt 1 und 2 */
/* beachte: volatile! und Vorzeichenlos reicht für alle */

volatile uint16_t Iencdr0, Iencdr1; /* Counter für Encoder-ticks
Werden in der ISR hochgezählt und im main bei Gelegenheit
(welcher? - nach 5 sec?) - spätestens aber beim Fahrtrichtungswechsel
auf Null gesetzt. DAnn aber die Werte musv+musi entsprechend anpassen */


volatile uint16_t Ienc0alt, Ienc1alt; // Encoder-Altwerte


volatile uint16_t Iz_ysecv0, Iz_ysecv1; /* Zeitmarke "µsec"
des vorletzten Interrupts in der Einheit 100 Mikrosekunden. Ist der Wert des
hochlaufenden Timers zum Interruptzeitpunkt i-1 */

volatile uint16_t Iz_yseci0, Iz_yseci1; /* Zeitmarke "µsec"
des letzten Interrupts in der Einheit 100 Mikrosekunden. Ist der Wert des
hochlaufenden Timers zum Interruptzeitpunkt i (letzter Interrupt) */

//volatile uint16_t Iz_diff0, Iz_diff1;
volatile int16_t Iz_diff0, Iz_diff1;
/* Zeitdifferenz
Beim Abarbeiten des Interrupts wird yseci mit time1 belegt und diff aus der
Differenz yseci-ysecv errechnet. Danach wird yseci nach ysecv kopiert.
Im main bzw. regelung wird aus Iz_diffx die Drehzahl berechnet. */

volatile uint16_t Izeit_1; /* Timer läuft hoch
Die Interruptroutine läuft mit 20 kHz (Möglicherweise sind 100 kHz besser)
Beim Start des Timers läuft der Zähler time1 hoch und wird nach 3 sec -
also beim Wert 60 000 - wieder auf Null gesetzt. Dabei werden die Werte
ysecv und yseci angepasst */
volatile uint16_t Izthrznt; // Der zeitliche Horizont, z.B. 20000 für 2 sec

volatile uint16_t icntdwn; // Countdownzähler (max 43200 = 12 Std)
volatile uint16_t icdwvor; // x Sekunden Vorwarnung mit blLED
volatile uint16_t icdwmax; // x Sekunden aktueller Maximalwert für Countdown

volatile uint16_t Iztmp_0; /* Timer läuft hoch
Zeitdifferenz zwischen zwei extINT0 wenn die Differenz kleiner als 10 ist,
break - dann ist der Interrupt viel zu kurz um korrekt zu sein. */

volatile uint16_t Iztmp_1; /* Timer läuft hoch
Zeitdifferenz zwischen zwei extINT1 wenn die Differenz kleiner als 10 ist,
break - dann ist der Interrupt viel zu kurz um korrekt zu sein. */

volatile int16_t Ikre, Ikli, Iregel1, Iregel2; /* Zeitvorgaben und Regelwerte
Ikre und Ikli sind die Entsprechungen von kre und kli, sie werden
in der Regelungsroutine verarbeitet */

volatile uint8_t Idelta1=100, Idelta2=100; /* */

...............................


/*================================================= =================================
================================================== =================================
================================================== ============================== */
/*##### Modulliste #####*/
/*================================================= =================================
================================================== =================================
================================================== ============================== */


/*================================================= =================================
Routinen in Datei m168D_dme_10x80.c Routinen: irDME-Routinen
================================================== ============================== */
void TC0IRP_CMA_init(void);
ISR(TIMER0_COMPA_vect);
void TC1PWM_init(void); //Init Timer/Counter 1, PWM-Signal
void setSRV1(uint16_t speed1); //Relative Pulslänge auf OC1A/PB1
/*================================================= =================================
================================================== ============================== */


/*================================================= =================================
Routinen in Datei m168D_inf_10x81.c Routinen: INFO´s
================================================== ============================== */
void init_USART0( unsigned int ubrr );
void sendchar(unsigned char c);
void sendUSART(char *s);
char getchar(void);
void getsUSART(char* Buffer, uint8_t MaxLen);
static inline void setportbon(const uint8_t n); // für Ports B, C und D
void info01(void); // Startinfo #####>>>>> steht IMMER im main
void info_Motst(void); // Ausgabe Daten zu ~tst~/void Motst_aufab(void)
void info_Motupm(void); // Ausgabe Upm zu ~tst~613~/void Motst_aufab(void)
void inf_irDME(uint8_t m1, uint8_t m2, uint8_t m3);
/*================================================= =================================
================================================== ============================== */
....................Aufpassen bei der Syntax für die Funktionsprototypen. Die werden so dargestellt wie oben geschrieben, praktisch wie die Funktion selbst, aber mit Semikolon danach ! ! !

Im main wird so darauf Bezug genommen:


#include "m168D_com_10x82signed.h" // commonvariable...bzw. in etwas mehr "Umgebung" des Hauptprogramms

/* Sicherung 28Jan09 1230 ...C1..\m168D_10\m168D_10x83.c
================================================== =================================
Target MCU : ATmega168
Target Hardware : m168D für R2D03
Target cpu-frequ. : 20 MHz, externer Quarzoszillator
================================================== =================================
Enthaltene Routinen :
#includes siehe unten

void info01(void) // Startinfo #####>>>>> steht IMMER im main-modul
int main(void)
================================================== =================================
*** Versionsgeschichte:
====================
x83 28Jan09 1230 tupsitest Testweise Ausgabe stupsi, tupsi etc zur Kontrolle der
Fahrgeschwindigkeit: ==> Iz_diff0 wird falsch ausgegeben UND
ie_mot12/34 darf nicht usigned sein (kann ja negativ werden).
..............................
x00 17mai08 1556 Übernahme von *x342.c v. 26jun08 1336
================================================== =================================
*** Aufgabenstellung : Software für R2_D03
in einer ersten Ausbaustufe angelehnt an: siehe Original
Original: ...C1..\m168D_10\m168D_10x342.c 26juni08 13ff
================================================== =================================
Alle möglichen Portanschlüsse am ATMega168:
============== ===
PCINT14,/RESET,PC6 1 28 PC5,ADC5,SCL,PCINT13
PCINT16,RxD,PD0 2 27 PC4,ADC4,SDA,PCINT12
PCINT17,TxD,PD1 3 26 PC3,ADC3,PCINT11
PCINT18,INT0,PD2 4 25 PC2,ADC2,PCINT10
PCINT19,OC2B,INT1,PD3 5 24 PC1,ADC1,PCINT9
PCINT20,XCK,T0,PD4 6 23 PC0,ADC0,PCINT8
VCC 7 22 GND
GND 8 21 AREF
PCINT6,;XTAL1,TOSC1,PB6 9 20 VCC
PCINT7,XTAL2,TOSC2,PB7 10 19 PB5,SCK,PCINT5
PCINT21,OC0B,T1,PD5 11 18 PB4,MISO,PCINT4
PCINT22,OC0A,AIN0,PD6 12 17 PB3,MOSI,OC2,OC2A,PCINT3
PCINT23,AIN1,PD7 13 16 PB2,/SS,OC1B,PCINT2
PCINT0,CLKO,ICP1,PB0 14 15 PB1,OC1A,PCINT1
--------------------==========-----------------------
Vorgesehene/belegte Anschlüsse am (ATMega168)-R2D2cc:
================== (für ´168 d = Drive/Director)
/RESET 1 28 PC5,(SCL) aktuell LED
RxD,(PD0) 2 27 PC4,(SDA) aktuell LED
TxD,(PD1)___3 26___PC3, ADC0 / Sharp GP2D120
(SigMot1) ExtINT0,(PD2) 4 25 PC2, SFH 5110, IN irDME 4 } vorgesehen
(SigMot2) ExtINT1,(PD3) 5 24 PC1, SFH 5110, IN irDME 3 } evtl. auch in
(E7) _|-- 3,4 Guz, PD4___6 23___PC0, SFH 5110, IN irDME 1-2 } ´168 n
VCC 7 22 GND
GND 8 21 AREF
XTAL1 PB6___9 20___VCC
XTAL2 PB7 10 19 PB5, (Startblink/LED0, 3sec v Tmr0, Mehrzweck)
(E6) PWM 1,2 uz+Guz,PD5 11 18 PB4 _|-- 3,4 uz (E4) (hier oder PB3)
(E5) PWM 3,4 uz+Guz,PD6__12 17___PB3, Reserve 2
(E8) _|-- 1,2 uz,PD7 13 16 PB2, Servo
(E9) _|-- 1,2 Guz,PB0 14 15 PB1, OC1A = SFH 415, OUT (irDME) */
/* ================================================== ============================ */

#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h> // Dies für die UART-Library "Fleury"
/* Beachte C:\Programme\WinAVR-20070525\avr\include\avr\iomx8.h */

#include "m168D_com_10x82signed.h" // commonvariable
#include "m168D_dme_10x80.c" // irDME Routinen
#include "m168D_inf_10x81.c" // Info-Ausgaben - - - Usart zuerst init.
//#include "m168D_kal_10x81.c" // Kalibrierungen, speziell irDME´s
//#include "m168D_kal_10x81x.c" // Kalibrierungen, speziell irDME´s
//#include "m168D_kal_10x81y.c" // Kalibrierungen, speziell irDME´s
#include "m168D_kal_10x81zz.c" // Kalibrierungen, speziell irDME´s
#include "m168D_mot_10x80.c" // Motorroutinen incl. PWM, Regelung Motor
#include "m168D_tmr_10x81.c" // Timer, PWM
#include "m168D_gpd_10x80.c" // ADC-Routinen für GP2D120 und Aufruf Regelung
//#include "m168D_tst_10x82x.c" // Testroutinen
//#include "m168D_tst_10x82y.c" // Testroutinen
#include "m168D_tst_10x83_tupsitest.c" // Testroutinen

#define MCU = AVR_ATmega168

#define F_CPU 20000000 // Quarz 20 Mhz-CPU
// #define BAUD 57600
#define UART_BAUD_RATE 57600 // Änderung am 19sep08 2220 für lib Fleury
#define MYUBRR ((unsigned int)((unsigned long) F_CPU/16/BAUD-1)) //vgl doc2545,S179
// und https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=375337#375337
/* ================================================== ============================ */
/* Interrupt-Handler und -Adressen
Address Labels Code Comments
siehe C:\Programme\WinAVR-20070525\avr\include\avr\iomx8.h sowie
Interruptvektoren/-vektortabelle in *doc2545, S 63 von AVR */

/* ================================================== ============================ */
// ===== Subroutinen ================================================== ===========
/* ================================================== ============================ */

.................................

/* ================================================== ============================ */
/* === HAUPTProgramm ================================================== ========= */
/* Initialisierungen, LED1 kurzblinken als Signal für Programmstart,
Ausgabe des Indentifizierungsstrings per USART */

int main(void)
{
uint8_t i;

//Pins/Ports als Ein- (0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren
DDRB = 0b00110111; // siehe aktuell oben oder fortschritt/R2D2
PORTB = 0b11001000; // und Port/Pull Ups (1) aktivieren

DDRC = 0b01110000; // PC3 ist ADC3, PC0 .. 6 , kein PC7-Pin bei m168
PORTC = 0b00000111; // Änderung für ADC: PC3 ist Eingang ##>> OHNE Pullup !!
// Encoder_1 = ExtINT0 = PortD2, Encoder_2 = PortD3
DDRD = 0b11110000; // -> siehe unter DDRB, sowie PD2,3 extInt
PORTD = 0b00001111; // Pull Ups aktivieren

for(i=0; i<20; i++) // LED auf PC5 5 sek blinken lassen
// ###>>> bevor Interrupts erlaubt sind, um ungewollte
// Resets u.ä. besser erkennen zu können
{
setportcon(5); // Hellphase
waitms(3); // ... damit man kurze resets besser erkennt
setportcoff(5); // Dunkelphase
waitms(97);
}

TC0PWM_init(); //Init Timer/Counter0 für PWM/Motoren
TC0IRP_CMA_init(); //Init Tmr/Cnt0 CmprMtchA Interrupt enable - zu dme

TC1PWM_init(); //Init Timer/Counter1 36kHz/27,8µs am 19 Mai 2008, 2258Uhr
setSRV1(128); // und gleich irLED einschalten auf Maximalwert-

Isvs1 = 27; //Vorgabewert "Servoansteuerung" auf Mittelstellung
TC2TMR_init(); //Init Timer/Cntr2-Interrupt Zeitnahme 20 kHz/50 µsec

ADC3_10_init_irupt(); // Initialisiere ADC3, 10 Bit, MIT Interrupt
// init_USART0(MYUBRR); //USART0 initialisieren mit wählbarer Baudrate (s.o.)
uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); // Init "Fleury"

XTI_0_1_init(); //Initialisiere den externen Interrupt 0 und 1

sei(); //Globalen Interrupt freigeben

waitms(1000);
init_KO_lst(); //Initialisierung KOnstanten-Liste = Werte + div. Vorgaben
// Aufruf NACH sei(), weil irDME´s abgefragt werden.
waitms(1000);
info01(); //Startinfo über USART ausgeben
.................
}
// ===== Ende des Testabschnittes, er kann aus mehreren Abschnitten bestehen =====
// ================================================== ==============================

/* Es folgt der aktuelle Übersetzungskommentar:
Build started 30.9.2008 at 18:13:37
avr-gcc.exe
-I"D:\pro-fils_D\compu+MC\C1 mC Projekte\m168D_10\alter_code\aug_08_allgem"
-I"D:\pro-fils_D\compu+MC\C1 mC Projekte\m168D_10\alter_code\jul_08_allgem"
-mmcu=atmega168 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char
-funsigned-bitfields -fpack-
struct -fshort-enums -MD -MP -MT m168D_10.o -MF dep/m168D_10.o.d -c ../m168D_10.c

avr-gcc.exe -mmcu=atmega168 -Wl,-Map=m168D_10.map m168D_10.o -o m168D_10.elf
avr-objcopy -O ihex -R .eeprom m168D_10.elf m168D_10.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load"
--change-section-lma .eeprom=0 --no-change-warnings
-O ihex m168D_10.elf m168D_10.eep || exit 0
c:\Programme\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
avr-objdump -h -S m168D_10.elf > m168D_10.lss

AVR Memory Usage
----------------
Device: atmega168

Program: 6772 bytes (41.3% Full)
(.text + .data + .bootloader)

Data: 494 bytes (48.2% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...
================================================== ========== */

WENN nun die *.h im gleichen (Projekt-) Verzeichnis ist wie Deine haupt*.c mit dem "main"-Modul, dann reicht dieses #include xy.h . . . mehr musst Du nicht machen - den Compiler musst Du nicht mehr sagen - der sucht im aktuellen Verzeichnis ganz von selbst. Und dorthin gehört die *.h ja auch . . . .

Ich selbst mache für jedes "Programm" eine eigene Projektdatei - in der auch eine Subdirectory "alter code" existiert *ggggg*.

Ist das so genug verständlich? Oder zuviel Codebeispiel? Zu undurchsichtig?

Da_Vinci13
05.02.2009, 20:44
OK!
Dann ist jetzt das mit der Headatei klar! Danke für die Infos!

Jetzt komm ich zu einem weiteren kleinen Problem:
Ich hab jetzt das RN-Control über den MK3 USB Programmer über die USB schnittstelle mit dem Computer verbunden.
Dann hab ich diesen Code geschrieben:

#include <avr/io.h>

int main (void)
{
DDRB = 0xff;
PORTB = 0xff;

while (0)
{}
return 0;
}

Dann hab ich es compiliert (erfolgreich).
Dann hab ich auf run gedrückt.
Jedoch steht dann, USB Gerät nicht gefunden...
Eine LED welche ich an GND und an PINB5 angeschossen habe, sollte dann eigentlich leuchten... Tut sie aber nicht...

Kann jemand einen Fehler bei meiner vorgehensweise Entdecken?

Grüsse!

Grüsse!

oberallgeier
05.02.2009, 23:04
Mit dem MK3 habe ich bisher nie gearbeitet - kann also nicht helfen.

Da_Vinci13
06.02.2009, 17:48
Hi,
Also ich denke mal das grösste Problem ist, dass es das MK3 nicht erkennt...
Es kommt immer die Meldung USB Gerät nicht gefunden.
Wenn ich das Problem dann beheben will steht:
Schliessen sie das Gerät erneut an oder ersetzen sie es.
Ich hab es jedoch erst Gerstern gekauft und das stand schon als ich es das erste mal angeschlossen hatte...
Weiss jemand woran das liegen könnte?

Grüsse!

deepack
12.02.2009, 09:18
Hi,
Ich hab mir jetzt AVR Studio 4.15 installiert! Erfolgreich! Danke für die Hilfe!
Jetzt taucht aber gleich eine weitere Frage auf:
Wenn ich jetzt da die Plattform wählen muss taucht eine Liste auf von verschiedenen Plattformen:
STK500 or AVRISP
JTAG ICE
JTAGICE mkll
AVRISP mkll
AVR Dragon
STK600
AVR ONE!

Ich denke mal ich sollte STK500 or AVRISP nehmen, aber wenn ich das an klick dann kommen verschiedene Ports:
Auto
COM1
...
COM9

Jedoch nirgends USB und ich will ja über USB programmieren...

Bei den restlichen kommt in der Liste USB (ausgeschlossen JTAG ICE)

Kann ich da einfach eines auswählen in welchem USB steht?

Würde mich über eine Antwort freuen!

Grüsse!

EDIT: gelöst

Ich habe das selbe problem.WIe hast du es denn gelöst?
Ich benutze folgenen isp programmer http://www.virtualvillage.de/Items/006401-034?&caSKU=006401-034&caTitle=USB%20ISP%20Programmierkit%20f.%20ATMEL%20 AVR%20ATMEGA%20%c2%b5Controller

Schöne Grüße
Deepack

Da_Vinci13
12.02.2009, 13:40
Hi,
Ich konnte es nicht ausprobieren, da ich mir zuerst noch einen neuen Computer kaufen muss, da ich MK2 und MK3 für meine Computer ausprobiert habe und beide nicht gingen kaufe ich mir jetzt einen Computer mit parraller Schnittstelle

Zu deiner Frage:
Ich würde sagen du solltest STK500 or AVRISP nehmen.
Wegen dem COM weiss ich nicht genau, da sollte sich hier vielleicht noch ein Spezialist melden....

Und ich hab da noch eine weitere Programmierumgebung entdeckt. Workpad. Kannst du auf MyAVR runterladen. Leider muss du all 30min speichern, da es nur eine Demo ist...
Wenn du mit Bascom programmierst solltest du Workpad SE nehmen, wenn du mit Assembler oder C programmierst solltest du Workpad PLUS nehmen.

Grüsse!