Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem


von Stefan T. (_distance_07)


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


Lesenswert?

Hast Du vielleicht Fehler beim Assemblieren? Hast Du überhaupt 
assembliert? Mal auf F7 gedrückt?

von Stefan T. (_distance_07)


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


Lesenswert?

Was genau tust Du, bevor die Meldung kommt?

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

von Stefan T. (_distance_07)


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


Lesenswert?

Eigentlich nicht. Zeig mal Deine ASM-Datei.

von Stefan T. (_distance_07)


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)


Lesenswert?

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

von Philipp B. (philipp_burch)


Lesenswert?

1
.include"m8515def.inc   ; Einbinden der Contollerdatei !

Fehlt da nicht noch ein schliessendes "?

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


Lesenswert?

.include "m8515def.inc"

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

von Stefan T. (_distance_07)


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)


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


Lesenswert?

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

von Stefan T. (_distance_07)


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)


Lesenswert?

... mein Projekt liegt aber in einem ganz anderem Ordner...

bzw. in einem Unterordner der Eigenen Dateien.

von Johannes M. (johnny-m)


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)


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)


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:

Lesenswert?

kann einer aus der asm datei mir eine hex machen

von Ingo (Gast)


Lesenswert?

Warum machst du es nicht selber?

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


Angehängte Dateien:

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)


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)


Lesenswert?

Die hex ist doch im Download mit drin.
Probier doch mal die.

von Olaf S. (olafseger)


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)


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?
1
;
2
.include "Header.inc"     ;Label und Werte Zuweisungen
3
.include "Hardware.inc"   ;Hardware Label  Zuweisungen
4
;
5
;Programmstart nach RESET  ( Interrupt Vektoren Tabelle )
6
;
7
.CSEG                     ;Was ab hier folgt kommt in den FLASH-Speicher
8
.ORG $0000                ;Programm beginnt an der FLASH-Adresse 0x0000..
9
10
 rjmp  _reset             ;..mit der RESET-Vectortabelle
11
12
.include "IRQt13.inc"     ;Restliche Interrupt Vektortabelle
13
14
.ORG INT_VECTORS_SIZE     ;Programmadresse nach den ganzen IRQ-Vektoren
15
;
16
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
17
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
18
;I Erstinitialisierungen
19
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
20
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
21
;
22
;Stapelzeiger initialisieren (fuer Unterprogramme und / oder Interrupts)
23
;
24
_reset:
25
 ;ldi  a,High(RAMEND)      ;RAMEND, also das Ende vom SRAM, ist in der.. 
26
 ;out  SPH,a               ;..Definitions-datei festgelegt  
27
 ldi  a,Low (RAMEND)      ;Hier reicht ein Byte, weil das...
28
 out  SPL,a               ;...SRAM nur 64Byte gross ist
29
;
30
;Ports Erstkonfiguration
31
; 
32
 sbi   DDRB,pin.pla      ;PORT-Bit als Ausgang f. PLA-LED
33
 sbi   DDRB,led.ora      ;PORT-Bit als Ausgang f. SLEEP-LED
34
 sbi   DDRB,led.ge      ;PORT-Bit als Ausgang f. Wake-Up
35
 
36
 sbi   PORTB,led.ge      ;LED Gelb ausschalten
37
38
 sbi   PORTB,pin.int0    ;Pull-up f. INT0 Low Level Interrupt
39
;
40
;Variablen initialisieren ( r0-r31 haben unbestimmten Inhalt )
41
;
42
 clr  flag_reg            ;Allgemeines Flaggenregister;
43
 clr  ovf0_zlr            ;Timer0 Overflow-Zaehler initialisieren
44
45
 sbr  flag_reg,1<<slp    ;Sleep ist gewuenscht
46
;
47
;Systemtakt ( 4,8MHz ) durch 256 teilen ( 18,750kHz = 53,333µs )
48
;
49
 in   a,CLKPR        ;Clock Prescaler Register laden..
50
 sbr  a,1<<CLKPCE      ;..Sicherheitsprozedur..
51
 cbr  a,1<CLKPS3|1<<CLKPS2|1<<CLKPS1|1<<CLKPS0;.. 
52
 out  CLKPR,a             ;..durchfuehren..
53
 cbr  a,1<<CLKPCE      ;..jetzt den Teiler..
54
 sbr  a,1<<CLKPS3      ;..neu einstellen..
55
 out  CLKPR,a        ;..und ueberschreiben
56
;
57
;EXTERNAL INTERRUPT -> INT0 Low Level ist default
58
;
59
 in   a,GIMSK        ;General Interrupt Masken Register laden..
60
 sbr  a,1<<INT0        ;..INT0 Interruput Freigabebit setzen..
61
 out  GIMSK,a        ;..INT0 Interrupt freigeben
62
63
 sei                      ;Alle programmierbaren Interrupts freigeben
64
;
65
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
66
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
67
;H Hauptprogrammschleife
68
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
69
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
70
;
71
_main:
72
73
 ;sbi  PINB,pin.pla      ;++++++++LED-PLA toggeln f. die Systemtaktbestimmung
74
 ;rjmp PC-1          ;+++++++++++++++++++++++++++++++++++++++++++++++++++
75
76
 sbr  flag_reg,1<<pla.flg   ;Programmlaufanzeige-Flag quitieren
77
 sbrs flag_reg,slp      ;SLEEP erwuenscht?
78
 rjmp _nsleep        ;Nein -> No Sleep
79
;
80
;SLEEP-MODE -> Power Down
81
;
82
 in   a,MCUCR        ;MCU Control Register laden..
83
 sbr  a,1<<SM1|1<<SE    ;..Power-Down-Mode und Sleep Enable vorbereiten..
84
 out  MCUCR,a        ;..und freigeben
85
 sleep            ;µC in den Schlaf-Modus versetzen
86
 in   a,MCUCR        ;MCU Control Register laden..
87
 cbr  a,1<<SM1|1<<SE    ;..PD-Mode & SE rueckgaengig..
88
 out  MCUCR,a        ;..machen
89
 
90
 cbi  PORTB,led.ge      ;LED Gelb einschalten
91
 
92
_nsleep: 
93
 rjmp _main               ;Ja -> Jetzt mit rising INT0
94
 
95
 ;rjmp PC          ;Endlosschleife
96
;
97
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
98
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
99
;Q Beginn der verwendeten Interrupt Service Routinen ( ISR )
100
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
101
;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
102
;
103
.include "ISR.inc"        ;Interrupt Service Routinen
104
105
.EXIT                     ;Ende des Quelltextes


Bernd_Stein

von S. Landolt (Gast)


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):
1
 ldi  a,(1<<CLKPCE)
2
 out  MCUCR,a
3
 ldi  a,(1<<CLKPS3)
4
 out  MCUCR,a

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


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)


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)


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)


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:

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:
1
_main:
2
 sbis  PINB,1
3
 rjmp  _main
4
 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?"
1
;
2
.include "Header.inc"       ;Label und Werte Zuweisungen
3
.include "Hardware.inc"     ;Hardware Label  Zuweisungen
4
;
5
;Programmstart nach RESET  ( Interrupt Vektoren Tabelle )
6
;
7
.CSEG                       ;Was ab hier folgt kommt in den FLASH-Speicher
8
.ORG $0000                  ;Programm beginnt an der FLASH-Adresse 0x0000..
9
10
 rjmp  _reset               ;..mit der RESET-Vectortabelle
11
12
.include "IRQt13.inc"       ;Restliche Interrupt Vektortabelle
13
14
.ORG INT_VECTORS_SIZE       ;Programmadresse nach den ganzen IRQ-Vektoren
15
;
16
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
17
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
18
;I Erstinitialisierungen
19
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
20
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
21
;
22
_reset:
23
;
24
;Ports Erstkonfiguration
25
; 
26
 sbi   DDRB,led.pla      ;PORT-Bit als Ausgang f. PLA-LED
27
 sbi   DDRB,led.ora      ;PORT-Bit als Ausgang f. SLEEP-LED
28
 sbi   DDRB,led.ge          ;PORT-Bit als Ausgang f. TEST-LED
29
;
30
;Variablen initialisieren ( r0-r31 haben unbestimmten Inhalt )
31
;
32
;
33
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
34
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
35
;H Hauptprogrammschleife
36
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
37
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
38
;
39
 ;sbi  PINB,led.pla          ;Systemtakt -> Gemessene Frequenz.. #########################################################################
40
 ;rjmp pc-1                  ;..mal 8 nehmen                     #########################################################################
41
42
_test:
43
 cbi  PORTB,led.ora         ;LED-Orange einschalten
44
 sbi  PORTB,led.ora      ;LED Orange ausschalten
45
 ldi  xl,8
46
 clr  b
47
48
_main:
49
 sbis  PINB,1
50
 rjmp  _main
51
 sbi  LED_PORT,led.ge         ;LED-Gelb einschalten ( TEST ) ############################################################################
52
 cbi  LED_PORT,led.ge         ;LED-Gelb ausschalten ( TEST ) ############################################################################
53
_main_1: 
54
 sbic PINB,1
55
 rjmp _main_1
56
 sbi  LED_PORT,led.pla         ;LED-PLA einschalten ( TEST ) ############################################################################
57
 cbi  LED_PORT,led.pla         ;LED-PLA ausschalten ( TEST ) ############################################################################
58
;
59
;Systemtakt ( 4,8MHz ) durch X teilen 
60
;
61
 in   a,CLKPR        ;Clock Prescaler Register laden..
62
 sbr  a,1<<CLKPCE      ;..Sicherheitsprozedur..
63
 cbr  a,1<CLKPS3|1<<CLKPS2|1<<CLKPS1|1<<CLKPS0;.. 
64
 out  CLKPR,a               ;..durchfuehren..
65
 ldi  a,$7F                 ;..CLKPCE loeschen..
66
 and  a,b
67
 out  CLKPR,a
68
69
 inc  b
70
 cpse b,xl
71
 rjmp _main
72
 
73
 rjmp _test
74
75
 
76
; rjmp PC          ;Endlosschleife
77
78
.EXIT                       ;Ende des Quelltextes

Bernd_Stein

von c-hater (Gast)


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)


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. (Gast)


Lesenswert?

MiWi schrieb:
> Sorry, aber einer muss es ja aussprechen.

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

von Hugo H. (hugohurtig1)


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)


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)


Lesenswert?

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

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


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)


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.
Beitrag #6903146 wurde von einem Moderator gelöscht.
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
Noch kein Account? Hier anmelden.