mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit rjmp beim AVR Atmega 8L


Autor: Christian C. (ccyriacks)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Es wäre schön wenn mir hier jemand weiterhelfen könnte ....

Und zwar liegt mein Problem im rjmp Befehl bzw. das mein Mikrocontroller 
ihn nicht richtig ausführt in Zeile 66 (Anhang) sollte er zur Marke 
start springen bin ich der Meinung. Stattdessen führt er mit Konstanter 
Boßhaftig keit auch die letzten drei Zeilen (Anhang 70-72)aus. Und setzt 
nur den Ausgang PORTB,2 wäre schön wenn mir jemand dazu einen Tipp geben 
könnte...

vielen Dank schon mal im vorraus

mfg Christian

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian C. wrote:
> Hallo,
>
> Es wäre schön wenn mir hier jemand weiterhelfen könnte ....
>
> Und zwar liegt mein Problem im rjmp Befehl bzw. das mein Mikrocontroller
> ihn nicht richtig ausführt in Zeile 66 (Anhang) sollte er zur Marke
> start springen bin ich der Meinung. Stattdessen führt er mit Konstanter
> Boßhaftig keit auch die letzten drei Zeilen (Anhang 70-72)aus. Und setzt
> nur den Ausgang PORTB,2 wäre schön wenn mir jemand dazu einen Tipp geben
> könnte...
>
> vielen Dank schon mal im vorraus
>
> mfg Christian

Also die Zeile 70 wird definitiv nie angesprungen! Kann es sein, dass du 
übersehen hast, dass die DDR-Register ebenfalls bereits bei Bit 0 und 
nicht erst bei Bit 1 anfangen, (hältst du dein Eingangssignal an die 
richtigen Pins?)?

Autor: Christian C. (ccyriacks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albrecht H. wrote:
> Christian C. wrote:
>> Hallo,
>>
>> Es wäre schön wenn mir hier jemand weiterhelfen könnte ....
>>
>> Und zwar liegt mein Problem im rjmp Befehl bzw. das mein Mikrocontroller
>> ihn nicht richtig ausführt in Zeile 66 (Anhang) sollte er zur Marke
>> start springen bin ich der Meinung. Stattdessen führt er mit Konstanter
>> Boßhaftig keit auch die letzten drei Zeilen (Anhang 70-72)aus. Und setzt
>> nur den Ausgang PORTB,2 wäre schön wenn mir jemand dazu einen Tipp geben
>> könnte...
>>
>> vielen Dank schon mal im vorraus
>>
>> mfg Christian
>
> Also die Zeile 70 wird definitiv nie angesprungen! Kann es sein, dass du
> übersehen hast, dass die DDR-Register ebenfalls bereits bei Bit 0 und
> nicht erst bei Bit 1 anfangen, (hältst du dein Eingangssignal an die
> richtigen Pins?)?

Danke für die Schnelle Antwort,

aber leider nicht habe Portb,0 Portb,1 und Portb,2 jeweils alle mit 
einer Leuchtdiode verbunden benutzte das myavr Board und habe eben auch 
nochmal ausprobiert die Leuchtdiode direkt an Pin 14, 15 und 16 zu 
halten, nur Pin 16 ist an :-( Aber wenigstens siehst Du das schon mal 
genauso das der da eigentlich nicht hinkommen darf lol. Könnte das 
auch am Compiler liegen ?? Das der da irgendwie mist macht ?? Mache das 
ganze unter Linux mit den AVR binutils das brennen habe ich auch schon 
mit dem AVR Quick prog versucht beide male mit dem gleichen Ergebnis nur 
Portb, 2 geht an.

mfg christian

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian C. wrote:
> ...
> halten, nur Pin 16 ist an :-( Aber wenigstens siehst Du das schon mal
> genauso das der da eigentlich nicht hinkommen darf lol.

Ich hab das im AVR-Studio4-Simulator laufen lassen und zumindest da 
funktioniert dein Programm schon so wie es soll, (nur vielleicht nicht 
unbedingt wie du es erwartest?), und Zeile 70 wird wirklich nicht 
angesprungen, habe da einen Breakpoint gesetzt, (nur für den Fall ...).


> Könnte das
> auch am Compiler liegen ?? Das der da irgendwie mist macht ?? Mache das
> ganze unter Linux mit den AVR binutils

Ist rein theoretisch natürlich immer möglich, aber ich glaube nicht, 
dass der Compiler einen Fehler macht, (zumal das ja eigentlich ein 
Assembler ist und es da wirklich nicht viel Interpretationsspielraum 
gibt). Ich habe auch erst vor kurzem mit den AVRs angefangen, (vorher 
8051), und jedesmal wenn ich mir sicher war, dass da ein Fehler im 
System oder im Controller vorliegt, war es letztlich ein Denkfehler von 
mir.

Wie schaltest du eigentlich die Porteingänge mit Masse oder mit +5V, 
(oder besser: Was glaubst du wie die geschaltet werden?), und wie sind 
deine LEDs angeschlossen, leuchten die bei 0 oder bei 1, (je nachdem wie 
du die angeschlossen hast musst du die nämlich mit 0 und nicht mit 1 
einschalten)? Also leuchtet dann z.B. LED 1 nicht mit (0b00000010) 
sondern mit (0b11111101).

Und bei den Eingängen ist es genau dasselbe Spiel, also wenn du da einen 
internen oder externen Pull-Up, (auf +5V oder was auch immer),dran hast 
musst du ja auf Eingang = Low und nicht auf Eingang = High prüfen.
Tausch doch z.B. einfach mal die "sbrs"-Befehle gegen "sbrc" aus, (und 
schau ob dann wenigstens "invertiert betrachtet" deine LEDs so leuchten 
wie sie sollen).

Eigentlich ist es nicht sonderlich kompliziert, aber ich muss auch immer 
kurz innehalten und nachdenken, was ich am Eingang anlegen muss, (also 
Masse oder +5V), damit sich der Zustand des Eingangspins auch 
tatsächlich ändert, (also wenn der schon auf +5V liegt, kann ich lange 
versuchen den auf High zu bringen, da wird sich gar nichts tun, weil er 
ja schon auf High ist, (oder umgekehrt)).

Also!
Schreib zwei ganz kurze Progrämmchen:

1. Eines mit dem du testest ob deine LEDs mit 0 oder 1 Leuchten, 
(vermutlich mit 0).

2. Eines mit dem du sicherstellen kannst, dass du ein High oder Low am 
Eingangspin auch wirklich richtig interpretierst und nicht nur glaubst 
das zu tun!

Und vergiss nicht dass die Eingänge des AVRs immer prellen werden, also 
wenn du an einen Eingangspin z.B. Masse anlegst wird noch mindestens 30 
mal vorher der der Zustand des Pull-Up oder Pull-Down Widerstands 
anliegen bevor wirklich endgültig Masse anliegt.


> das brennen habe ich auch schon
> mit dem AVR Quick prog versucht beide male mit dem gleichen Ergebnis nur
> Portb, 2 geht an.
>
> mfg christian

Autor: Christian C. (ccyriacks)
Datum:
Angehängte Dateien:
  • test.s (1,26 KB, 212 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen :-)

> Wie schaltest du eigentlich die Porteingänge mit Masse oder mit +5V,
> (oder besser: Was glaubst du wie die geschaltet werden?), und wie sind
> deine LEDs angeschlossen, leuchten die bei 0 oder bei 1, (je nachdem wie
> du die angeschlossen hast musst du die nämlich mit 0 und nicht mit 1
> einschalten)? Also leuchtet dann z.B. LED 1 nicht mit (0b00000010)
> sondern mit (0b11111101).

Meine Porteingänge werden mit Tastern auf 0V gezogen darum werden auch 
die internen Pull up s eingeschaltet. Die Leuchtdioden werden mit 5V 
eingeschaltet und leuchten wenn diese Spannung anliegt, über einen 1kOhm 
Vorwiderstand.

> Also!
> Schreib zwei ganz kurze Progrämmchen:
>
> 1. Eines mit dem du testest ob deine LEDs mit 0 oder 1 Leuchten,
> (vermutlich mit 0).
>
> 2. Eines mit dem du sicherstellen kannst, dass du ein High oder Low am
> Eingangspin auch wirklich richtig interpretierst und nicht nur glaubst
> das zu tun!

So das Progrämmchen zum testen ist im Anhang und funktioniert auch 
Fabelhaft (Also Leuchtdiode über Taster einschalten), bis die drei 
Zeilen wieder darunter kommen, schon geht die Leuchtdiode (dies mal halt 
an PORTC)wieder an :-(

Danke für Deine Bemühungen, ist das Programm mit dem du das getestet 
hast irgendwo frei Verfügbar ?

mfg Christian

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian C. wrote:
> Guten Morgen :-)
>
>> ...
>
> Meine Porteingänge werden mit Tastern auf 0V gezogen

Schön, aber musst du dann nicht auf "0" testen also "sbrs" gegen "sbrc", 
(Skip bei nicht gesetztem Bit), tauschen?

> darum werden auch
> die internen Pull up s eingeschaltet.
> Die Leuchtdioden werden mit 5V
> eingeschaltet und leuchten wenn diese Spannung anliegt, über einen 1kOhm
> Vorwiderstand.

Schon klar, aber was musst du auf deinem Port ausgeben, damit eine LED 
leuchtet eine "1" oder eine "0"?

>
Ah, schau mal hier steht doch alles, sogar für den Mega8:
http://www.mikrocontroller.net/articles/AVR-Tutori...

Das asm-Programm unter der Überschrift "Eingabe" und das unter der 
Überschrift "Pullup-Widerstand".

Also, da wird die LED mit 0 geschaltet und die Eingabepins werden auf 0 
getestet, du hast es bei deinem ersten Programm genau umgekehrt gemacht.


>
> So das Progrämmchen zum testen ist im Anhang und funktioniert auch
> Fabelhaft (Also Leuchtdiode über Taster einschalten), bis die drei
> Zeilen wieder darunter kommen, schon geht die Leuchtdiode (dies mal halt
> an PORTC)wieder an :-(


  ldi   r17,0b00000100
  mov  r16,r17
  out   PORTC,r17


warum kopierst du r17 nach r16, wenn du dann doch r17 ausgibst? 
(Außerdem müssten so an Port C alle LEDs leuchten bis auf die dritte).

>
> Danke für Deine Bemühungen, ist das Programm mit dem du das getestet
> hast irgendwo frei Verfügbar ?

AVR-Studio4 gibts kostenlos zum runterladen bei Atmel, (eventuell 
Registrierung erforderlich), ist aber für Windows, keine Ahnung ob das 
unter Linux z.B. mit Wine läuft.

>
> mfg Christian

Autor: Christian C. (ccyriacks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albrecht H. wrote:

> Schon klar, aber was musst du auf deinem Port ausgeben, damit eine LED
> leuchtet eine "1" oder eine "0"?

Ich muss am Port eine "1" ausgeben damit eine LED leuchtet, mein Problem 
liegt eigentlich auch viel mehr darin das er immer die letzten Zeilen 
noh ausführt obwohl er davor wieder zu start springen müsste.



>
>>
>> So das Progrämmchen zum testen ist im Anhang und funktioniert auch
>> Fabelhaft (Also Leuchtdiode über Taster einschalten), bis die drei
>> Zeilen wieder darunter kommen, schon geht die Leuchtdiode (dies mal halt
>> an PORTC)wieder an :-(
>
>
>   ldi   r17,0b00000100
>   mov  r16,r17
>   out   PORTC,r17
>
>
> warum kopierst du r17 nach r16, wenn du dann doch r17 ausgibst?
> (Außerdem müssten so an Port C alle LEDs leuchten bis auf die dritte).
>
mache ich nur weil ich eigentlich noch mit r17 ein bisschen rechnen will 
das habe ich nur zur Fehlersuche rausgebaut damit ich da beim rumrechnen 
keinen Fehler einbaue.

>
> AVR-Studio4 gibts kostenlos zum runterladen bei Atmel, (eventuell
> Registrierung erforderlich), ist aber für Windows, keine Ahnung ob das
> unter Linux z.B. mit Wine läuft.
>
So Software habe ich mir runtergeladen werde ich gleich mal testen

>>
>> mfg Christian

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian C. wrote:
> Albrecht H. wrote:
>
>> Schon klar, aber was musst du auf deinem Port ausgeben, damit eine LED
>> leuchtet eine "1" oder eine "0"?
>
> Ich muss am Port eine "1" ausgeben damit eine LED leuchtet,

Ok, dann mach doch mal ein Schaltbild hier rein wie du die LED genau 
angeschlossen hast.

> mein Problem
> liegt eigentlich auch viel mehr darin das er immer die letzten Zeilen
> noh ausführt obwohl er davor wieder zu start springen müsste.
>
>
Das bezweifle ich immer noch.
>
>...

Autor: Alexander Liebhold (lippi2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Christian,

also zu Beginn ist ein Fehler in der Initialisierung. Du beginnst den 
Programmspeicher bei $0 (.org $0) dann folgen bei dir 2x rjmp main. Wenn 
du dir nen Disassembler ansiehst, steht beim IRQ-Vector2 auch ein rjmp 
main drin. Also obacht. Hab das entfernt und dein Testprogramm läuft bei 
mir einwandfrei. Die zustände am PB0 werden entsprechend dem Eingang PB1 
belegt.

Da ich mit AVR Studio arbeite habe ich dein .include "avr.h" entfernt. 
Verstehe ich nicht ganz, warum bei dir ne Header-Datei drinne steht, 
obwohl du ASM machst. Im Studio heißt die .include "M8def.inc"

Gruß Alexander

Autor: Alexander Liebhold (lippi2000)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, die Datei vergessen.

Autor: Alexander Liebhold (lippi2000)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab dein Hauptprogramm gestestet und das geht auch sehr gut. Genau die 
Funktion, die du haben willst. (Änderung des Startvektor und 
Include-File).

Kannst ja mal die HEX-Datei laden, mit der sollte es funktionieren, 
ansonsten Hardwarefehler.

Alexander


.include "M8def.inc"

.org 0




;--- Reset and Interrupt vector ---- ;VNr. Beschreibung -----


  rjmp main  ;1 POWER ON RESET
  reti    ;2 Int0-Interrupt
  reti    ;3 Int1-Interrupt
  reti    ;4 TC2 Compare Match
  reti    ;5 TC2 Overflow
  reti    ;6 TC1 Capture
  reti    ;7 TC1 Compare Match A
  reti    ;8 TC1 Compare Match B
  reti    ;9 TC1 Overflow
  reti    ;10 TC0 Overflow
  reti    ;11 SPI, STC Serial Transfer Complete
  reti    ;12 UART Rx Complete
  reti    ;13 UART Data Register Empty
  reti    ;14 UART Tx Complete
  reti    ;15 ADC Conversion Complete
  reti    ;16 EEPROM Ready
  reti    ;17 Analog Comparator
  reti    ;18 TWI (IC) Serial Interface
  reti    ;19 Store Program Memory Ready
  



main:  sbi  DDRB,0     ; DDRB,0  als Ausgang initialisieren
  sbi  DDRB,1     ; DDRB,1  als Ausgang initialisieren
  sbi  DDRB,2     ; DDRB,2  als Ausgang initialisieren
  
  cbi  DDRD,2     ; DDRB,2  als Eingang initialisieren
  sbi  PORTD,2    ; Pull Up Widerstand einschalten
  cbi  DDRD,3     ; DDRB,3  als Eingang initialisieren
  sbi  PORTD,3    ; Pull Up Widerstand einschalten

  ldi   r17,0b00000000  ; lade 0b00000000 in Register 17

  
start:  in  r18,PIND  ; Lese Register 18 ein und schiebe es in Register 18
  sbrs  r18,2    ; Überspringe nächsten Befehl wenn Register 18, Bit 2 gesetzt ist
  rjmp  unten    ; springe zu Marke unten
  
  sbrs  r18,3    ; Überspringe nächsten Befehl wenn Register 18, Bit 3 gesetzt ist
  rjmp  oben    ; springe zu Marke oben
  rjmp  start    ; springe zu Marke start


unten:  ldi   r17,0b00000010  ; lade 0b00000010 in Register 17
  mov  r16,r17    ; verschiebe den Inhalt von Register 17 in 16
  out  PORTB,r16  ; gebe Register 16 an Port B aus
  rjmp  start    ; springe zu Marke start

oben:  ldi   r17,0b00000001  ; lade 0b00000001 in Register 17
  mov  r16,r17    ; verschiebe den Inhalt von Register 17 in 16
  out  PORTB,r16  ; gebe Register 16 an Port B aus
  rjmp  start    ; springe zu Marke start


//Diese 3 Zeilen werden nie erreicht!!!!
  ldi  r17,0b00000100  ; lade 0b00000100 in Register 17
  mov  r16,r17    ; verschiebe den Inhalt von Register 17 in 16
  out  PORTB,r16  ; gebe Register 16 an Port B aus

Autor: Christian C. (ccyriacks)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Albrecht H. wrote:
> Christian C. wrote:
>> Albrecht H. wrote:
>>
>>> Schon klar, aber was musst du auf deinem Port ausgeben, damit eine LED
>>> leuchtet eine "1" oder eine "0"?
>>
>> Ich muss am Port eine "1" ausgeben damit eine LED leuchtet,
>
> Ok, dann mach doch mal ein Schaltbild hier rein wie du die LED genau
> angeschlossen hast.

So das Gesamte Schaltbild ist im Anhang und auf Seite 3 im .pdf zu 
finden

>
>> mein Problem
>> liegt eigentlich auch viel mehr darin das er immer die letzten Zeilen
>> noh ausführt obwohl er davor wieder zu start springen müsste.
>>
>>
> Das bezweifle ich immer noch.
>>
>>...

Mit der .hex von Alexander funktioniert es alles :-) werde mich da jetzt 
mal auf die suche begeben wo das Problem beim Code - hex erstellen liegt 
er benutzt eine andere Datei ...

mfg christian

Autor: Christian C. (ccyriacks)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Liebhold wrote:

Hallo Alexander :-)

jetzt bin ich erstmal erleichtert das mein Programm so funktioniert wie 
es soll, also mit deiner Hex Datei jedenfalls (ich habe schon gedacht 
ich drehe durch lol)

> Hey Christian,
>
> also zu Beginn ist ein Fehler in der Initialisierung. Du beginnst den
> Programmspeicher bei $0 (.org $0) dann folgen bei dir 2x rjmp main. Wenn
> du dir nen Disassembler ansiehst, steht beim IRQ-Vector2 auch ein rjmp
> main drin. Also obacht. Hab das entfernt und dein Testprogramm läuft bei
> mir einwandfrei. Die zustände am PB0 werden entsprechend dem Eingang PB1
> belegt.

Diesen Programmkopf habe ich so bekommen und die anderen Programme ohne 
Sprünge liefen so auch immer ohne Probleme von daher habe ich mir 
ehrlich gesagt keine weiteren gedanken dazu gemacht. Da das compilieren 
und programmieren bis auf dieses Problem bisher super funktionierte ...

>
> Da ich mit AVR Studio arbeite habe ich dein .include "avr.h" entfernt.
> Verstehe ich nicht ganz, warum bei dir ne Header-Datei drinne steht,
> obwohl du ASM machst. Im Studio heißt die .include "M8def.inc"

Wie man sieht hatte ich mich da wohl zu früh gefreut, werde mich jetzt 
also mal selbst daran machen und nachschauen was der compiler da genau 
anstellt bzw. was da fehlschlägt und ob er vielleicht auch mit der 
M8def.inc zurechtkommt falls ich die finde. In der AVR.H stehen z.B. die 
Bit Definitionen also sowas wie PORTB = Adresse 0x.. hab sie mal mit 
angehängt.

Ansonsten warte ich mal auf den Registrierungscode für das AVR Studio 4
und hoffe das ich dazu bald eine Lösung finde

besten Dank schon mal für deine Bemühungen

mfg christian

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>selbst daran machen und nachschauen was der compiler da genau anstellt...

Das ist ein Assembler, kein Compiler.

MfG Spess

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albrecht H. wrote:
> Christian C. wrote:
>> Albrecht H. wrote:
>>
>>> Schon klar, aber was musst du auf deinem Port ausgeben, damit eine LED
>>> leuchtet eine "1" oder eine "0"?
>>
>> Ich muss am Port eine "1" ausgeben damit eine LED leuchtet,
>

Ok, so wie das auf deinem Board verschaltet ist, (hättest gleich den 
Schaltplan mit dranhängen sollen),  macht das natürlich Sinn die LEDs 
mit "1" einzuschalten, im Gegensatz zu einigen anderen Mikrocontrollern, 
(mit Open-Collector-Ausgang), kann der Atmega ja auch einigermaßen gut 
"sourcen", (also Verbraucher mit Strom versorgen, anstatt sie nur auf 
Masse zu ziehen).

Bei meinem Test im AVR-Studio habe ich, (da mir die AVR.H ja nicht zur 
Verfügung stand), standardmäßig, .include "m8def.inc", verwendet. Das 
erste "begin:  rjmp main" hatte ich auch entfernt, nicht unbedingt weil 
es mir gleich als Fehler auffiel, sondern eher weil ich es überflüssig 
fand.
Einerseits, dadurch, dass da am Anfang zweimal hintereinander "rjmp 
main" steht, stand es ja einmal im Reset-Vektor und einmal im 
INT0-Vektor, (externer Interrupt), und der wird ja durch PIND2 
ausgelöst, den du als Eingang deklariert hattest. Andererseits, da du 
den INT0 erst einschalten musst bevor er irgendwas macht, 
(Defaultzustand ist laut Datenblatt ausgeschaltet), hat das zweite "rjmp 
main" gar nichts bewirkt, nichts gutes aber auch nichts schlechtes.

Wie auch immer, darauf hatte ich gar nicht geachtet, weil ich immer 
davon ausging, das Problem wäre, dass du die LEDs wie im 
Tutorial-Beispiel angeschlossen hättest, und versuchen würdest sie mit 
"1" anstatt "0" zu schalten ...

> ...
>> mein Problem
>> liegt eigentlich auch viel mehr darin das er immer die letzten Zeilen
>> noh ausführt obwohl er davor wieder zu start springen müsste.
>>
>>
> Das bezweifle ich immer noch.
>>
>>...

Autor: Alexander Liebhold (lippi2000)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Grunde steht schon das Gleiche in der AVR.h, nur das sich da halt 
jemand mit seinen Namen schmückt. Das AVR Studio mit allen 
Definitionsfiles ist doch kostenlos und du kannst die Hex-Files mit 
jedem Programmer laden. Ich bin sehr zufrieden damit, vorallem mit dem 
Zusatzprogramm WinAVR für C.

Anbei die Datei.

Gruß Alex

Autor: Christian C. (ccyriacks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albrecht H. wrote:

Guten morgen!!


> Ok, so wie das auf deinem Board verschaltet ist, (hättest gleich den
> Schaltplan mit dranhängen sollen),  macht das natürlich Sinn die LEDs
> mit "1" einzuschalten, im Gegensatz zu einigen anderen Mikrocontrollern,
> (mit Open-Collector-Ausgang), kann der Atmega ja auch einigermaßen gut
> "sourcen", (also Verbraucher mit Strom versorgen, anstatt sie nur auf
> Masse zu ziehen).

Ja, das stimmt hatte gehofft das du es mir auch so glaubst ;-)

Habe das mit dem AVR Studio nochmal ausprobiert selbst zu bauen und dann 
funktioniert auch alles so wie es soll freu muß malsehen wann ich dazu 
komme mir das unter Linux fertig zumachen

mfg christian

Autor: Christian C. (ccyriacks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Liebhold wrote:
> Im Grunde steht schon das Gleiche in der AVR.h, nur das sich da halt
> jemand mit seinen Namen schmückt. Das AVR Studio mit allen
> Definitionsfiles ist doch kostenlos und du kannst die Hex-Files mit
> jedem Programmer laden. Ich bin sehr zufrieden damit, vorallem mit dem
> Zusatzprogramm WinAVR für C.
>
Habe das ganze gestern auch mal mit dem AVR Studio gemacht und war sehr 
zufrieden vorallem weil es dann funktionierte gg und er nicht mehr an 
den Sprungmarken vorbei rennt

> Anbei die Datei.
>

Danke für die Datei die sehen sich wirklich recht ähnlich nur mein 
avr-as kommt damit nicht zurecht. Schade eigentlich, werde jetzt erstmal 
die Programme mit dem Studio erstellen hat auch die besseren debug 
Funktionen

wenn ich rausgefunden habe was an dem avr-as bzw. der avr.h nicht 
funktioniert werde ich das hier nochmal reinstellen hätte die nur gerne 
benutzt weil wir die in unserer Fachhochschule auch verwenden

also nochmal vielen Dank und man liest sich bestimmt demnächst nochmal 
wieder :-)

mfg christian

Autor: Alexander Liebhold (lippi2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na wunderbar! Du kannst den Inhalt der AVR.h mal in ne Textdatei 
meinetwegen MyM8def.inc ablegen und in den Ordner (glaub es ist 
programm/atme/atme tools/avr assembler/app notes/) kopieren.

Einfach im Programm dann abändern und mal testen.

So könntes gehen.

Autor: Christian C. (ccyriacks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Liebhold wrote:
> Na wunderbar! Du kannst den Inhalt der AVR.h mal in ne Textdatei
> meinetwegen MyM8def.inc ablegen und in den Ordner (glaub es ist
> programm/atme/atme tools/avr assembler/app notes/) kopieren.
>
> Einfach im Programm dann abändern und mal testen.
>
> So könntes gehen.

Nabend Alex :-)

das rüber kopieren habe ich eben mal versuch damit kann das AVR Studio 
dann nichts mehr anfangen ...die m8def.inc gibt es zweimal für Assembler 
/ Assembler2, verschiedene Bausteintypen werde also das Studio benutzen 
und mal schauen wie sich das ganze im Labor verhält. Ist auf alle Fälle 
schon mal sehr schön das es jetzt so geht

In C gehts übrigens auch in Linux ohne Problme ....

Aber erstmal bleibe ich jetzt beim Assemblieren he he

mfg christian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.