mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR - CKsel - Calibrated Internal RC Oscillator


Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe hier einen ATmega 8 und möchte das der mit dem 
"Calibrated Internal RC Oscillator" auf 8 Mhz leuft. Programmieren tu 
ich das ganze mit dem STK500. Laufen soll das auf einer selbsgbauten 
Testplatine mit LEDs

Das hat auch schon geklappt aber nur in nem ganz einfachem Programmtext 
ohne Interuppts. Hier ist der Anfang von dem Programmtext aber er kommt 
anscheinend nicht einmal bis "sbi PortD, 7" denn es leuchtet keine LED.

.include: "m8def.inc"


.def adresseL = r1
.def adresseH = r2
.def dmxcountL = r19
.def dmxcountH = r20
.def temp = r16
.def dmx_status = r17
.def dmx_byte = r18




.equ fck = 8000000           ; Quarzfrequenz des AVR
.equ fbd = 250000           ; Baudrate UART
.equ bddv = (fck/ (16*fbd))-1     ; Wert für Baudraten-Teiler

.org 0x000
  rjmp init             ;reset vector address
  reti               ;External Interrupt0 Vector Address
  reti               ;External Interrupt1 Vector Address
  reti               ;Input Capture1 Interrupt Vector Address
  reti               ;Output Compare1A Interrupt Vector Address
  reti               ;Output Compare1B Interrupt Vector Address
  reti               ;Overflow1 Interrupt Vector Address
  reti               ;Overflow0 Interrupt Vector Address
  reti               ;SPI Interrupt Vector Address
  rjmp get_byte           ;UART Receive Complete Interrupt Vector 
Address
  reti               ;UART Data Register Empty Interrupt Vector Address
  reti               ;UART Transmit Complete Interrupt Vector Address
  reti               ;Analog Comparator Interrupt Vector Address
  reti               ;External Interrupt2 Vector Address
  reti               ;Output Compare0 Interrupt Vector Address
  reti               ;EEPROM Interrupt Vector Address
  reti               ;SPM complete Interrupt Vector Address


init:
  cli               ;Interupts verbieten
  cbi CKSEL0, 0          ;
  cbi CKSEL1, 0          ;
  cbi CKSEL2, 1          ;
  cbi CKSEL3, 0          ; 8 Mhz



  ;STACKPOINTER
  ldi temp, LOW(RAMEND)       ;LOW-Byte der obersten RAM-Adresse
  out SPL, temp
  ldi temp, HIGH(RAMEND)       ;HIGH-Byte der obersten RAM-Adresse
  out SPH, temp


  ;PortC
  ldi temp, 0xff          ;Port PC0 als ausgang definieren
  out DDRC, temp          ;
  ;PortD
  ldi temp, 0x00           ;Port PD0 als Eingang definieren
  out DDRD, temp           ;
  sbi PortD, 7          ;Signalisiere: Eigeschaltet

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


  ldi temp, 0x00           ;Port PD0 als Eingang definieren
  out DDRD, temp           ;
  sbi PortD, 7

was soll auch leuchten, wenn PORTD Eingang ist?

Gruß aus Berlin
Michael

Autor: Marco S (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cbi CKSEL0, 0 ??? Stelle die Frequenz mal lieber über den 
Programmieradapter ein.

Ansonsten schaltest du mit

ldi temp, 0x00           ;Port PD0 als Eingang definieren
out DDRD, temp           ;
sbi PortD, 7          ;Signalisiere: Eigeschaltet

lediglich den internen PullUp an. Ob der ausreicht eine LED zu treiben?

cu

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm, also in nem anderen Projekt mit dem mega8 hat das so geklappt:

  ; Ampel steuerung mit ATMega 8

.include "m8def.inc"


cbi CKSEL0, 0
cbi CKSEL1, 0
cbi CKSEL2, 1
cbi CKSEL3, 0          ; 8Mhz !?!?


.def temp = r16
.def uZahl = r17
.def mZahl = r18
.def oZahl = r19

ldi temp, Low(RAMEND)
out SPL, temp
ldi temp, high(RAMEND)
out SPH, temp          ;Stack Pointer Intialisieren

ldi temp, 0xff
out DDRB, temp          ;Port B ist ausgang


Main:

ldi temp, 0b001001        ;Rot - Rot
out PortB, temp
ldi oZahl, 25
rcall delay

ldi temp, 0b001011        ;Rot - Rot Gelb
out PortB, temp
ldi oZahl, 25
rcall delay

ldi temp, 0b001100        ;Rot - Grün
out PortB, temp
ldi oZahl, 200
rcall delay

...usw....

Reicht es Also wenn ich mit dem AVR assembler zum STK connecte und im 
kartenreiter "Fuses" das einstelle, wie ich möchte?

kann mich jemand mal einfach ganz simpel aufklären, was man genau machen 
muss, damit der m8 auf 8Mhz mit dem Internem Osc. leuft?

Vielen Dank!

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.