Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
Guten Abend liebe Forumgemeinde,

ich starte grade mein allererstes Projekt mit Microcontroller am 
AVR-Board.

Ich nutze das AVR-Studio und wenn ich assemblieren will, dann wird mir 
mitgeteilt:

***** AvrAssembler: Object file is empty and not saved *******

Was sollte diese Object file beinhalten ?


Mit freundlchem Gruß

Stefan

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hast Du vielleicht Fehler beim Assemblieren? Hast Du überhaupt 
assembliert? Mal auf F7 gedrückt?

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
Hi travelrec,

nein habe nicht assembliert, es sollte eigentlcih aus meiner 
Problemstellung hervorgehen, dass diese Meldung beim Versuch zu 
assemblierne auftritt.

MFG

Stefan

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Was genau tust Du, bevor die Meldung kommt?

P.S.: AVR-Studio hat auch eine gute Online-Hilfe.

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
Ja, in der Onlinehilfe fand ich irgendwie keinen Rat.

Also ich hab das Programm geschrieben (erstes Testprogramm aus dem 
AVR-Tutorial) und anschließend versucheich zu assemblieren.

Muss ich denn vorher noch was festlegen ?

Die include Datei befindet sich im Ordner des Projektes und der Coder 
wurde als .asm gespeichert.

Nun will ich es als hex Datei ausgeben udn auf den Flash Speicher 
schicken.

kanns sein, dass ich ganz am Anfang vergessen habe, etwas zu 
konfiguierne oder so ?


MFG

Stefan

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Eigentlich nicht. Zeig mal Deine ASM-Datei.

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
;*************** Mein erstes Testprogramm, Projekt 1 *******************

.include"m8515def.inc   ; Einbinden der Contollerdatei !

  ldi r16, 0xFF    ; den Wert "0xFF" in das Register 16 laden
  out DDRB, r16    ; I/O Register "DDRB" -> Funktionen festlegen

  ldi r16, 0b11111100  ; den Wert "0b11111100" in das Register 16 laden
  out PortB, r16    ; Inhalt des Registers 16 auf Port B Ausgeben

Ende: rjmp ende

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
... in der letzten Zeile muss das erste ende .. klein geschrieben 
werden, oder? ... Daran wirds aber sicher nciht liegen

von Philipp B. (philipp_burch)


Bewertung
0 lesenswert
nicht lesenswert
.include"m8515def.inc   ; Einbinden der Contollerdatei !

Fehlt da nicht noch ein schliessendes "?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
.include "m8515def.inc"

muß das heißen. Bei Dir fehlen die zweiten Gänsefüßchen

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
Ja, das stimmt .. ich habs korrigiert aber er zeigt den gleichen Fehler 
an.

Was hat es denn mit dieser "object file" auf sich ?

Was gehört dort normalerweise rein und wofür ?


Folgendes zeigt er mit im Message-Fenster an:


Loaded plugin STK500
Loaded plugin Atmel AVR Assembler
Loaded partfile: F:\Programme\Atmel\AVR 
Tools\PartDescriptionFiles\ATmega8515
AvrAssembler: Object file is empty and not saved



MFG

Stefan

von Philipp B. (philipp_burch)


Bewertung
0 lesenswert
nicht lesenswert
Was liegen denn für Dateien in deinem Programmverzeichnis? Vielleicht 
solltest du mal alle bis auf den Code rausschmeissen und ein neues 
Projekt erstellen. Hilft manchmal, vielleicht hast du ja mal aus 
Versehen irgendwas verstellt.

Im Objectfile kommt sonst eigentlich der assemblierte Code zu liegen 
(Vor dem Linken).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Klicke mal auf das BUILD Fenster anstatt des MESSAGE-Fensters, was sagt 
er denn da?!

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
AVRASM: AVR macro assembler 2.1.2 (build 99 Nov  4 2005 09:35:05)
Copyright (C) 1995-2005 ATMEL Corporation

D:\Dokumente und Einstellungen\Stefan Schule\Eigene 
Dateien\Projekt1.asm(1): warning: Empty source file

Memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000000      0      0      0 unknown      -
[.dseg] 0x000060 0x000060      0      0      0 unknown      -
[.eseg] 0x000000 0x000000      0      0      0 unknown      -

Assembly complete, 0 errors. 1 warnings

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
... mein Projekt liegt aber in einem ganz anderem Ordner...

bzw. in einem Unterordner der Eigenen Dateien.

von Johannes M. (johnny-m)


Bewertung
0 lesenswert
nicht lesenswert
Stefan Thierhoff wrote:
> ... mein Projekt liegt aber in einem ganz anderem Ordner...
Dann stimmt die Projekt-Konfiguration nicht! Auf jeden Fall wird nicht 
Dein Source assembliert, sondern ein anscheinend leeres .asm-File!

von Johannes M. (johnny-m)


Bewertung
0 lesenswert
nicht lesenswert
...Aber wie schon von anderen gesagt: Bevor noch mehr Müll rauskommt, 
neues Projekt erstellen und die Source einfügen.

von Stefan T. (_distance_07)


Bewertung
0 lesenswert
nicht lesenswert
... Danke für die Geduld, ich habe ein neues Projekt erstellt und es 
funktionierte auf Anhieb.

Ich wusste, dieses Forum ist gut !

Danke an alle Mitwirkenden und bis zum nächstens Problem.


MFG


Stefan

von Olaf S. (olafseger)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
kann einer aus der asm datei mir eine hex machen

von Ingo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Warum machst du es nicht selber?

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Olaf Seger schrieb:
> kann einer aus der asm datei mir eine hex machen
>
Nö, die die Include-Datei " dcf77.asm " fehlt.


Bernd_Stein

von Olaf S. (olafseger)


Bewertung
0 lesenswert
nicht lesenswert
http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk-lcd.htm

bei
Dcf_PULLUP=0

pull up deaktivieren
(ist die 0 richtig ?)

Warum machst du es nicht selber?

weil mein englisch nicht so gut ist

was ist eine Include-Datei ?

von Schlaukopf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die hex ist doch im Download mit drin.
Probier doch mal die.

von Olaf S. (olafseger)


Bewertung
0 lesenswert
nicht lesenswert
ursprünglich stand in der asm Datei drin
Dcf_PULLUP=1
und ich habe sich auf
Dcf_PULLUP=0
geädert

und jetzt will ich nur aus der asm Datei eine HEX Datei machen

und warum das ganze ?

Beitrag "DCF77; Pollin DCF-Empfangsmodul DCF1; BASCOM"

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Bewertung
-3 lesenswert
nicht lesenswert
Hallo zusammen,

wundere mich, dass bereits nach einer Low-Zeit von 10µs der ATtiny13A 
aus seinem Power-Down-Sleep-Mode, per Low-Level-Interrupt INT0 geweckt 
wird. Als Systemtakt wird der Interne RC-Oszillator mit 4,8Mhz per FUSE 
BYTES ( $FF39 ) eingestellt und dieser durch 256 geteilt, was einem 
SYS-Takt von nominal 18,750kHz bzw. eine Zeit von 53,333µs pro Takt 
ergibt.

Da der µC mit 5V betrieben wird,ist natürlich der von der Fabrik 
kalibrierte Takt ( für 3V bei 25°C ) dermaßen daneben, dass bei mir ein 
SYS-Takt von 12,776kHz ( 78,272µs ) entsteht.


9.2.1 Low Level Interrupt
A low level interrupt on INT0 is detected asynchronously. This implies 
that this interrupt can be used for waking the part also from sleep 
modes other than Idle mode. The I/O clock is halted in all sleep modes 
except Idle mode.Note that if a level triggered interrupt is used for 
wake-up from Power-down, the required level must be held long enough for 
the MCU to complete the wake-up to trigger the level interrupt. If the 
level disappears before the end of the Start-up Time, the MCU will still 
wake up, but no inter-rupt will be generated. The start-up time is 
defined by the SUT and CKSEL fuses as described in“System Clock and 
Clock Options” on page 23.If the low level on the interrupt pin is 
removed before the device has woken up then programexecution will not be 
diverted to the interrupt service routine but continue from the 
instruction following the SLEEP command.

Die Wake-Up Time ist ja 4 Takte und die Start-Up Time 6T. 4T => 
4x78,272µs = 313,088µs.

Warum wird der µC dann schon nach 10µs aus dem Power-Down-Modus geweckt?
;
.include "Header.inc"     ;Label und Werte Zuweisungen
.include "Hardware.inc"   ;Hardware Label  Zuweisungen
;
;Programmstart nach RESET  ( Interrupt Vektoren Tabelle )
;
.CSEG                     ;Was ab hier folgt kommt in den FLASH-Speicher
.ORG $0000                ;Programm beginnt an der FLASH-Adresse 0x0000..

 rjmp  _reset             ;..mit der RESET-Vectortabelle

.include "IRQt13.inc"     ;Restliche Interrupt Vektortabelle

.ORG INT_VECTORS_SIZE     ;Programmadresse nach den ganzen IRQ-Vektoren
;
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;I Erstinitialisierungen
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;
;Stapelzeiger initialisieren (fuer Unterprogramme und / oder Interrupts)
;
_reset:
 ;ldi  a,High(RAMEND)      ;RAMEND, also das Ende vom SRAM, ist in der.. 
 ;out  SPH,a               ;..Definitions-datei festgelegt  
 ldi  a,Low (RAMEND)      ;Hier reicht ein Byte, weil das...
 out  SPL,a               ;...SRAM nur 64Byte gross ist
;
;Ports Erstkonfiguration
; 
 sbi   DDRB,pin.pla      ;PORT-Bit als Ausgang f. PLA-LED
 sbi   DDRB,led.ora      ;PORT-Bit als Ausgang f. SLEEP-LED
 sbi   DDRB,led.ge      ;PORT-Bit als Ausgang f. Wake-Up
 
 sbi   PORTB,led.ge      ;LED Gelb ausschalten

 sbi   PORTB,pin.int0    ;Pull-up f. INT0 Low Level Interrupt
;
;Variablen initialisieren ( r0-r31 haben unbestimmten Inhalt )
;
 clr  flag_reg            ;Allgemeines Flaggenregister;
 clr  ovf0_zlr            ;Timer0 Overflow-Zaehler initialisieren

 sbr  flag_reg,1<<slp    ;Sleep ist gewuenscht
;
;Systemtakt ( 4,8MHz ) durch 256 teilen ( 18,750kHz = 53,333µs )
;
 in   a,CLKPR        ;Clock Prescaler Register laden..
 sbr  a,1<<CLKPCE      ;..Sicherheitsprozedur..
 cbr  a,1<CLKPS3|1<<CLKPS2|1<<CLKPS1|1<<CLKPS0;.. 
 out  CLKPR,a             ;..durchfuehren..
 cbr  a,1<<CLKPCE      ;..jetzt den Teiler..
 sbr  a,1<<CLKPS3      ;..neu einstellen..
 out  CLKPR,a        ;..und ueberschreiben
;
;EXTERNAL INTERRUPT -> INT0 Low Level ist default
;
 in   a,GIMSK        ;General Interrupt Masken Register laden..
 sbr  a,1<<INT0        ;..INT0 Interruput Freigabebit setzen..
 out  GIMSK,a        ;..INT0 Interrupt freigeben

 sei                      ;Alle programmierbaren Interrupts freigeben
;
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;H Hauptprogrammschleife
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;
_main:

 ;sbi  PINB,pin.pla      ;++++++++LED-PLA toggeln f. die Systemtaktbestimmung
 ;rjmp PC-1          ;+++++++++++++++++++++++++++++++++++++++++++++++++++

 sbr  flag_reg,1<<pla.flg   ;Programmlaufanzeige-Flag quitieren
 sbrs flag_reg,slp      ;SLEEP erwuenscht?
 rjmp _nsleep        ;Nein -> No Sleep
;
;SLEEP-MODE -> Power Down
;
 in   a,MCUCR        ;MCU Control Register laden..
 sbr  a,1<<SM1|1<<SE    ;..Power-Down-Mode und Sleep Enable vorbereiten..
 out  MCUCR,a        ;..und freigeben
 sleep            ;µC in den Schlaf-Modus versetzen
 in   a,MCUCR        ;MCU Control Register laden..
 cbr  a,1<<SM1|1<<SE    ;..PD-Mode & SE rueckgaengig..
 out  MCUCR,a        ;..machen
 
 cbi  PORTB,led.ge      ;LED Gelb einschalten
 
_nsleep: 
 rjmp _main               ;Ja -> Jetzt mit rising INT0
 
 ;rjmp PC          ;Endlosschleife
;
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
;Q Beginn der verwendeten Interrupt Service Routinen ( ISR )
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
;
.include "ISR.inc"        ;Interrupt Service Routinen

.EXIT                     ;Ende des Quelltextes


Bernd_Stein

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was, bitte, hat das nun mit dem "Anfängerproblem ... Object file is 
empty ..." von vor 12 Jahren zu tun?

Ihr Nichtanfängerproblem sieht doch so aus, als würde der 
Systemtaktvorteiler nicht gesetzt; und wenn das Fuse-Low-Byte nicht, wie 
angegeben, auf $39 stände, wüsste ich auch, warum. So bleibt mir nur der 
Rat: erstmal das Setzen des Vorteilers reduzieren bzw. vereinfachen zu 
(und dann weiterschauen):
 ldi  a,(1<<CLKPCE)
 out  MCUCR,a
 ldi  a,(1<<CLKPS3)
 out  MCUCR,a

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Bewertung
-3 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Ihr Nichtanfängerproblem sieht doch so aus, als würde der
> Systemtaktvorteiler nicht gesetzt;...
>
Doch der ist gesetzt, die Frequenz habe ich mit dem DSO gemessen, also 
kontrolliert.

Und der INT0 ist für mich ein Anfängerproblem, weil ich mich gerade erst 
damit beschäftige und auch gerne den Unterschied zum Pin Change 
Interrupt  ( PCI ) wissen möchte :

Beitrag "ATtiny26 Pin Change Interuppt ( PCINTx ) in der Praxis wenig brauchbar oder ?"


Bernd_Stein

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Pardon, aber das ist doch auch wieder über sieben Jahre her!
  Vorschlag, oder besser dringender Rat: Einen neuen Thread (mit 
sinnvollem Betreff!) starten, mit dem vollständigen Programm zum 
Nachvollziehen, und vielleicht findet sich dann jemand, der das auf 
einem ATtiny13A überprüft.
  Ich selbst habe einen solchen nicht, könnte es allenfalls auf einem 
ATtiny85 versuchen.

von Forist (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> wundere mich, ...

Frage dich besser mal, ob es sinnvoll ist, alle Anfängerprobleme dieser 
Welt an einen 12 Jahre alten Thread anzuhängen :-(

Beitrag #6169709 wurde von einem Moderator gelöscht.
von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Bewertung
-2 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Hallo zusammen,
>
> wundere mich, dass bereits nach einer Low-Zeit von 10µs der ATtiny13A
> aus seinem Power-Down-Sleep-Mode, per Low-Level-Interrupt INT0 geweckt
> wird.
>
Wen es interessiert, der kann es hier nachlesen.

https://www.edv-dompteur.de/forum/index.php?page=Thread&postID=3833#post3833


Bernd_Stein

: Bearbeitet durch User
von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Angehängte Dateien:

Bewertung
-3 lesenswert
nicht lesenswert
Hallo zusammen,

wieder habe ich ein Problem. Wo kommt der eine Takt her ?

Eins vorweg :

Theoretisch 4,8Mhz, praktisch ist der interne RC-Oszilator aber nur mit 
3,2Mhz, bei meinem ATtiny13A, bei 5V und ca. 20°C unterwegs. Um dies 
festzustellen, habe ich meinen üblichen Trick verwendet ( Endlosschleife 
-> Pin toggeln und ausmessen )

Heißt: *Ein Takt sind ca. 312,500ns *

Bei dem LA-Ausschnitt ist zu sehen, dass die LED-Gelb ( PB2 ), 2,333µS 
nach der steigenden Flanke von PB1 folgt.

Für mein daherhalten, erzeugt diese Codesequenz 4 oder 6 Takte, bis die 
steigende Flanke von LED-Gelb kommt:
_main:
 sbis  PINB,1
 rjmp  _main
 sbi  LED_PORT,led.ge         ;LED-Gelb einschalten ( TEST ) ############################################################################
6T wären 1,875µs. Bleiben also noch 458ns, was locker ein Takt ist.
Deshalb meine Frage : "Wo kommt der eine Takt her?"
;
.include "Header.inc"       ;Label und Werte Zuweisungen
.include "Hardware.inc"     ;Hardware Label  Zuweisungen
;
;Programmstart nach RESET  ( Interrupt Vektoren Tabelle )
;
.CSEG                       ;Was ab hier folgt kommt in den FLASH-Speicher
.ORG $0000                  ;Programm beginnt an der FLASH-Adresse 0x0000..

 rjmp  _reset               ;..mit der RESET-Vectortabelle

.include "IRQt13.inc"       ;Restliche Interrupt Vektortabelle

.ORG INT_VECTORS_SIZE       ;Programmadresse nach den ganzen IRQ-Vektoren
;
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;I Erstinitialisierungen
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;
_reset:
;
;Ports Erstkonfiguration
; 
 sbi   DDRB,led.pla      ;PORT-Bit als Ausgang f. PLA-LED
 sbi   DDRB,led.ora      ;PORT-Bit als Ausgang f. SLEEP-LED
 sbi   DDRB,led.ge          ;PORT-Bit als Ausgang f. TEST-LED
;
;Variablen initialisieren ( r0-r31 haben unbestimmten Inhalt )
;
;
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;H Hauptprogrammschleife
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;
 ;sbi  PINB,led.pla          ;Systemtakt -> Gemessene Frequenz.. #########################################################################
 ;rjmp pc-1                  ;..mal 8 nehmen                     #########################################################################

_test:
 cbi  PORTB,led.ora         ;LED-Orange einschalten
 sbi  PORTB,led.ora      ;LED Orange ausschalten
 ldi  xl,8
 clr  b

_main:
 sbis  PINB,1
 rjmp  _main
 sbi  LED_PORT,led.ge         ;LED-Gelb einschalten ( TEST ) ############################################################################
 cbi  LED_PORT,led.ge         ;LED-Gelb ausschalten ( TEST ) ############################################################################
_main_1: 
 sbic PINB,1
 rjmp _main_1
 sbi  LED_PORT,led.pla         ;LED-PLA einschalten ( TEST ) ############################################################################
 cbi  LED_PORT,led.pla         ;LED-PLA ausschalten ( TEST ) ############################################################################
;
;Systemtakt ( 4,8MHz ) durch X teilen 
;
 in   a,CLKPR        ;Clock Prescaler Register laden..
 sbr  a,1<<CLKPCE      ;..Sicherheitsprozedur..
 cbr  a,1<CLKPS3|1<<CLKPS2|1<<CLKPS1|1<<CLKPS0;.. 
 out  CLKPR,a               ;..durchfuehren..
 ldi  a,$7F                 ;..CLKPCE loeschen..
 and  a,b
 out  CLKPR,a

 inc  b
 cpse b,xl
 rjmp _main
 
 rjmp _test

 
; rjmp PC          ;Endlosschleife

.EXIT                       ;Ende des Quelltextes


Bernd_Stein

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan T. schrieb:

> ich starte grade mein allererstes Projekt mit Microcontroller am
> AVR-Board.
>
> Ich nutze das AVR-Studio und wenn ich assemblieren will, dann wird mir
> mitgeteilt:
>
> ***** AvrAssembler: Object file is empty and not saved *******
>
> Was sollte diese Object file beinhalten ?

Code. Du hast offensichtlich noch rein garkeinen Code geschrieben. 
Deswegen gibt's nix zu assemblieren und das erzeugt genau diese Meldung.

Schreib einfach in's initiale File sowas rein:

main:
  rjmp main

Das macht noch nix sinnvolles, ist aber übersetzbar und erzeugt genau 2 
Byte Code.

von MiWi (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Stefan T. schrieb:
> mein allererstes Projekt mit Microcontroller am
> AVR-Board

Und das ist Dein größter Fehler beim Einstieg. Die AVR sind alte 
Kamelle. Bist du alles am Laufen hast und díe Fuserei dich nicht mehr so 
stark frustriert, haben deine Kumpels schon ein Display am Start; deine 
Kumpels, die auf aktuelle (moderne) uCs setzen und nicht so einen alten 
Sch... wie bei dir.

Sorry, aber einer muss es ja aussprechen.

So, gleich schlagen die ATMEL Jünger auf mich ein. Aber lies ihre 
Beiträge in anderen Threads: Sie sind schon lange bei ARM und Co. Doch 
dich schicken sie zurück ins uC Mittelalter. ;-<<<

von Stefan ⛄ F. (stefanus)


Bewertung
3 lesenswert
nicht lesenswert
MiWi schrieb:
> Sorry, aber einer muss es ja aussprechen.

Schön für dich, ich war auch gerade kacken.

von Hugo H. (hugohurtig1)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Code. Du hast offensichtlich noch rein garkeinen Code geschrieben.
> Deswegen gibt's nix zu assemblieren und das erzeugt genau diese Meldung.
>
> Schreib einfach in's initiale File sowas rein:
>
> main:
>   rjmp main
>
> Das macht noch nix sinnvolles, ist aber übersetzbar und erzeugt genau 2
> Byte Code.

Noch nicht ausgeschlafen? Das ist fast 13 Jahre her ...

Bernd interessiert das nicht - wie immer :-)

von MiWi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Schön für dich, ich war auch gerade kacken.

Länger nicht an der Luft gewesen? Schon bitter, wenn man nicht 
ausgelastet ist.

von Friedhofsgärtner (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Leichenschänder? Der TO "Anfänger" von 2007 hat sein Projekt schon 
begraben.

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Bewertung
0 lesenswert
nicht lesenswert
Hugo H. schrieb:
> Noch nicht ausgeschlafen? Das ist fast 13 Jahre her ...
>
> Bernd interessiert das nicht - wie immer :-)
>
Genau - wie immer :

1. Threadüberschrift lesen
2. Evtl. Datum beachten
3. Posting verstehen
4. Falls nicht 3. nachfragen oder Klappe halten.
5. Auf die Fragen eingehen und / oder Alternativen bzw. Verbesserungen 
nennen.

Die Punkte kann man an einer Hand abzählen und deshalb evtl. gut merken, 
wenn nicht Punkt 4. ;-)


Ok, sehe ein das dies wohl schon für ein Mikrocontrollerforum über ein 
Anfängerproblem hinausgeht ;-)

Mir wird schon wo anders geholfen, danke für die rege Teilnahme an 
meinem Problem ;-)


Bernd_Stein

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Friedhofsgärtner schrieb:
> Leichenschänder? Der TO "Anfänger" von 2007 hat sein Projekt schon
> begraben.

Nö, der programmiert jetzt bei Boeing.

Beitrag #6210617 wurde vom Autor gelöscht.

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.