PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AMTEL Studio 6.0



martin66119
09.01.2013, 17:15
Hallo

habe die Tage auf meinem Rechner Amtel Studio 6.0 installiert. Nun wollte ich mein erstes Programm in C auf meinen Board übertragen. Das klappt aber nicht.

Ich verwende das Board myavr mit einem Mega 168.

Kann mir jemand helfen, wie ich es hinbekomme ein Programm auf mein Board zu übertragen.

Grüße
Martin

ePyx
09.01.2013, 19:32
Welcher Prommer? Der mySmartUSB MK2 wird nur per externes Tool unterstützt.

martin66119
12.01.2013, 00:18
Vielen Dank ePyx,

für mein Display habe ich hier mit Hilfe einen Code gefunden für mein Display gefunden. Nun komme ich aber wieder nicht weiter!

Habe gestern mit AVR STudio begonnen. Finde einfach die hex-Datei nicht, wenn ich auf Build solution gedrückt habe.

Folgenden MiniCode habe ich hier im Forum Dank Hilfe gefunden.

#include <avr/io.h>
#include "wintek2704.h"

/*
Test programm for wintek display
2005 Stefan Seegel dahamm@gmx.net
*/

int main(void)
{
lcd_init(LCD_DISP_ON);
lcd_puts("Guten Tag\n2. Zeile\n3. Zeile");
lcd_gotoxy(3, 6);
lcd_puts("4. Zeile Mitte");

for (;;)
{

}

return 0;
}



Was muss ich machen und wie muss ich AvrStudio 6 konfigurieren, damit ich eine hex-Datei bekomme um diese auf den Controller zu übertragen. Ach so, wo muss ich die #include "wintek2704.h" hinlegen?


Danke für die Hilfe schon einmal
Martin

ePyx
12.01.2013, 11:58
Das Hex-File befindet sich im Projektordner, je nach Build-Konfiguration in Debug/Release.

martin66119
12.01.2013, 12:37
Hallo

ich beschreibe mal vom Anfang bis jetzt was ich gemacht habe.

Entsprechend dem Video http://www.youtube.com/watch?v=_ADg1cIWRWg
habe ich ein neues Projekt angelegt.

nun steht lediglich folgender code im Editorfenster.
/*
* GccApplication2.c
*
* Created: 12.01.2013 12:17:20
* Author: Martin
*/


#include <avr/io.h>

int main(void)
{
while(1)
{
//TODO:: Please write your application code
}
}

Wenn ich nun auf Build solution drücke, erscheint keine Fehlermeldung. Ich finde auber nicht die Hex-datei, die ich dann mit Tools "MyAvrProg (da ich das Board myavr mit dem mySmartUSB MK2 (http://shop.myavr.de/index.php?sp=article.sp.php&artID=42) Programmer habe, habe ich den entsprechenden Programmer von der myavr >Seite im AmtekStudio installert. Eine Hex-Datei, die ich per bascom erzeugt habe, konnte ich auch schon über AmtelStudio 6 auf mein Board übertragen. Der Code ist auf dem Boart auch gelaufen.

Was nicht klappt. Ich bekomme mit dem Studio 6 keine hex-datei hin oder ich finde diese nicht, damit ich diese auswählen und mit dem Programmierungstool zu meinem Board übertragen kann.

Grüße
Martin

pirndi
19.01.2013, 10:09
Du findest die Dateien normalerweise nach dem erstellen in Win7 unter eigene dokumente\Atmel Studio\ProjektXY\Debug
Auch im AVRStudio im Solution Explorer zu deiner rechten unter Output Files

Prüf auch in den Projektoptionen ob du auch Execute able ausgewählt hast

mfg Pirndi

martin66119
23.01.2013, 20:45
Guten Abend!

Ich raff es nicht!

Den unten anhängenden Code habe ich im Netz gefunden!
Mit Amtel Studio 5.1 habe ich ein neues Projekt angelegt, in dem ich den unten anhängenden Code, den ich im Netz gefunden habe, als main.c eingefügt. Im selbigen ordner sind auch die

#include "max7219.h"
#include "ds18b20.h"

sowie die max7219.c und die ds18b20.c abgelegt.

Wenn ich nun mit build die Compilierung starte, kommt die Fehlermeldung

max7219.h. No such file or directory

Was mache ich falsch!

Bitte um Hilfe.

Grüße
Martin

PS.: Wenn ich include #include "max7219.h"auskommentiere, dann kommt die Fehlermeldung ds18b20.h. No such file or directory


//-------------------------------Codehier der -----------------------------------------------
// AVR-Temp Sensor
// bitman@bitmania.de
// www.bitmania.de
//------------------------------------------------------------------------------
// Based on the publication:
// Using DS18B20 digital temperature sensor on AVR microcontrollers
// Description and application, Version 1.0 (Preliminary)
// by Gerard Marull Paretas, September 2007
//------------------------------------------------------------------------------
// Fuses
// set 16MHz: avrdude -c avrispv2 -P usb -p m88 -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m
// read current: avrdude -v -c avrispv2 -P usb -p m88
// ATmega88
//------------------------------------------------------------------------------

#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#include <stdlib.h>
#include <avr/pgmspace.h>

#include "max7219.h"
#include "ds18b20.h"


// 7 segment digits
char digit_map[10] = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70, 0x7F, 0x7B};

int main(void)
{
// init max7219 spi communication
matrix_init();



// define variable that will hold temperature digit and decimal part
int8_t digit = 0;
uint16_t decimal = 0;

while(1) {
therm_read_temperature(&digit, &decimal);
//matrix_transmit(1, DIGIT_0); // 0
//matrix_transmit(2, DIGIT_8); // 0
_delay_ms(1000);

char d3 = digit/100; //Integer and Modulus Operations
char kalan = digit%100;
char d2 = kalan/10; //
char d1 = kalan%10;

matrix_transmit(1, digit_map[d2]); // 0
matrix_transmit(2, digit_map[d1]); // 0
}

return 0;
}

ePyx
23.01.2013, 21:06
Auf zum Projekt hinzugefügt oder nur in den Ordner gelegt? Ansonsten kann man den Include-Pfad noch bei den Toolchain-Einstellungen hinzufügen.

Achja, es gibt auch Code-Tags.

martin66119
23.01.2013, 23:00
Die include-Dateien habe ich nur im selben Ordner abgelegt.

- - - Aktualisiert - - -

Und wo finde ich die Toolchain damit ich da den includepfad einstellen kann

- - - Aktualisiert - - -

Juhu,

ich habs gefunden. Nun kommt keine Fehlermeldung mehr. Jetzt muss ich nur noch den Code übertragen und schauen, ob der Code stimmt.

Vielen vielen Dank für eure Hilfe
Martin

ePyx
24.01.2013, 05:57
Kein Problem. Aber noch Eins. Die Dateien kannst du auch so hinzufügen : mit einem Rechtsklick auf den Projektnamen und dann "Hinzufüge -> Vorhandenes Element" auswählen. Dann einfach die Dateien mit dem Dialog heraussuchen (STRG gedrückt halten für mehrere Dateien) und mit OK bestätigen. Sind die Dateien nicht im Projekt-Verzeichnis (Visual Studio deklariert das Projektverzeichnis in dem dort eine vcproj-Datei rumliegt) werden sie automatisch dorthin kopiert.

Sollte das Thema damit gelöst sein, markiere den Thread bitte als erledigt.

martin66119
24.01.2013, 22:57
Vielen dank Daniel,

das Compilieren und die Übertragung der hex auf mein Board (myAVR) hat geklappt.
In die wintec2704.c musste ich noch #define F_CPU 8000000UL einfügen.

Nur Text ist auf dem Display nicht zu sehen.

Hier der Code aus meinem Bascom:

Config Lcdpin = Pin , Rs = Portb.0 , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , E2 = Portd.7

Was muss ich in cie wintec2704.h für die Ports eintragen? Hier der Code aus der Wintec aus dem Netz:
#define LCD_DATA_PORT PORTD //Port on which the 4 LCD datapins are connected to
#define LCD_DATA_OFFSET 2 //Offset for data pins (e.g. 0 = PIN0..PIN3, 2 = PIN2..PIN5)
#define LCD_CTRL_PORT PORTD //PORT on which E1, E2, RS and RW are connected to
#define LCD_PIN_RW 4
#define LCD_PIN_RS 0
#define LCD_PIN_E1 6
#define LCD_PIN_E2 7


Grüße
Martin

ePyx
25.01.2013, 06:15
Also



Config Lcdpin = Pin , Rs = Portb.0 , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , E2 = Portd.7


lässt vermuten dass RS an PB0 hängt und D4-D7 des LCDs an PD5 - PD4 hängen. Das folgende Konstrukt kann also gar nicht funktionieren!



#define LCD_DATA_PORT PORTD //Port on which the 4 LCD datapins are connected to
#define LCD_DATA_OFFSET 2 //Offset for data pins (e.g. 0 = PIN0..PIN3, 2 = PIN2..PIN5)
#define LCD_CTRL_PORT PORTD //PORT on which E1, E2, RS and RW are connected to
#define LCD_PIN_RW 4
#define LCD_PIN_RS 0
#define LCD_PIN_E1 6
#define LCD_PIN_E2 7


Zunächst sollten D4-D7 auch aufsteigend an einem Port hängen. D4 an PD4, D5 an PD5 usw. Dann kannst du LCD_DATA_OFFSET auf 4 und LCD_DATA_PORT auf PORTD setzen.
RS, E1 und E2 würde ich auf PD0, PD1, PD2 und den RW-Pin eventuell auch auf PD3 setzen, da die Lib die du verwenden möchtest sicherlich auch das Busy-Flag abfragt.
Dann sollte das Ganze so aussehen :



#define LCD_DATA_PORT PORTD //Port on which the 4 LCD datapins are connected to
#define LCD_DATA_OFFSET 4 //Offset for data pins (e.g. 0 = PIN0..PIN3, 2 = PIN2..PIN5)
#define LCD_CTRL_PORT PORTD //PORT on which E1, E2, RS and RW are connected to
#define LCD_PIN_RW 3
#define LCD_PIN_RS 0
#define LCD_PIN_E1 1
#define LCD_PIN_E2 2


Anmerkung: Toolchain-Einstellungen -> Symbols kann man F_CPU für das ganze Projekt definieren. Dazu ein Symbol anlegen und F_CPU=8000000UL eintragen und fertig ist die Laube. Zu viele F_CPU-Definitionen werden irgendwann unübersichtlich und führen zu langen, nervenden und vor allem frustrierenden Fehlersuch-Aktionen die man sich selbst ersparen sollte.

martin66119
25.01.2013, 19:57
Hallo Daniel,

vielen Dank für deine Antwort.

Da ich die Leitungen am Display nur mit viel Mühe an einen anderen Port legen kann wie in meinem Bascom-Beispiel klappt das nicht so ganz. Besteht die Möglichkeit, den C-Code so zu gestalten, dass der C-Code funktioniert.

Grüße und schon einmal Danke für deine Hilfe
Martin

martin66119
26.01.2013, 20:48
Guten Abend!

Ich bin am lernen meinem Board etwas C beizubringen. Besser gesagt mir. Da ich ein Pollin (Wintek) 4x27 habe, und dies gerne weiterverwenden wollt, bin ich auf der suche nach der Beschreibung (Pinbelegung) des Display. Kennt jemand einen funktionsfähigen Link wo ich die Beschreibung finde? Oder gibt es ein Display (auch Grafisches) für das es eine gute Lib gibt.

Grüße
Martin

ePyx
26.01.2013, 23:15
Die Pinbelegung solltest du bei Pollin unter Downloads beim Artikel finden. Bzgl. des Quellcodes : ja kann man ändern, aber das musst du dann selbst tun.