www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Software PWM mit Assembler


Autor: Andy11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe hier einen Timer der hoch und runter zählt, jedoch weis ich 
nicht, mit welchem Befehl ich bsplsweise während er zählt er auf größer 
überprüft und ein bit schaltet
;**********************************Header**************************************
;Projektname:
;Name des Erstellers:
;Zuletzt aktualisiert:
;
;*****************************Initialisierungen********************************
.include "m16def.inc" ;Definitionsdatei des Mega16

;Stack init***********
  ldi r16, High(Ramend)
  out SPH, r16

  ldi r16, Low(Ramend)
  out SPL, r16

;*****************Deklarierete Funktionen und Subroutinen**********************

;*************************Variablendeklarationen*******************************

;*****************************Ein-Ausgänge*************************************
  ldi r16, 255
  out DDRB, r16 ;Portb als Ausgabeport

  ldi r16, 0
  out DDRA, r16 ;Porta als Eingabeport
  ldi r16, 255
  out PORTA, r16 ;Pullups für Eingagsport A aktivieren

;*****************************Hauptprogramm************************************

Hauptprogramm:
  inc r16
  cpi r16, 255
  brne Hauptprogramm
Zwei:  
  dec r16
  cpi r16, 0
  brne Zwei

jmp Hauptprogramm

;***********************Unterprogramme/Funktionen******************************


Autor: Gast 11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll ich dir jetzt die Assembler-Befehle erklärern???
Die zu kennen ist doch wohl die Voraussetzung fürs Programmieren-
oder verstehe ich da was falsch?????

Wer lesen kann ist im Vorteil.

Erklärung der Assembler-Befehle ist zu finden:

-In der Hilfe vom AVR-Studio,
-Im Assembler-Tutorial
-In verkürzter Form sogar im Datenblatt vom Baustein.

Autor: Andy11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soll ich dir jetzt die Assembler-Befehle erklärern???
>Die zu kennen ist doch wohl die Voraussetzung fürs Programmieren-
>oder verstehe ich da was falsch?????

ich weiß wo die Hilfe ist und ich bin schon einige Befehle 
durchgegangen, jedoch finde ich keinen Befehl, bei dem man einfach eine 
Zahl vergeleicht ohne ein Breq oder brne und auch ein Bit setzen

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ich weiß wo die Hilfe ist und ich bin schon einige Befehle
>durchgegangen, jedoch finde ich keinen Befehl, bei dem man einfach eine
>Zahl vergeleicht ohne ein Breq oder brne und auch ein Bit setzen

AVRs sind Controller mit RISC Architecture (Reduced instruction set). Da 
sind solche Befehle unüblich.

MfG Spess

Autor: Andy11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weiß wie ich eine bestimmte Zahl abfrage, jdeoch nicht wie ich auf 
>= komme, geht das überhaupt mit andi?
;**********************************Header**************************************
;Projektname:
;Name des Erstellers:
;Zuletzt aktualisiert:
;
;*****************************Initialisierungen********************************
.include "m16def.inc" ;Definitionsdatei des Mega16

;Stack init***********
  ldi r16, High(Ramend)
  out SPH, r16

  ldi r16, Low(Ramend)
  out SPL, r16

;*****************Deklarierete Funktionen und Subroutinen**********************

;*************************Variablendeklarationen*******************************

;*****************************Ein-Ausgänge*************************************
  ldi r16, 255
  out DDRB, r16 ;Portb als Ausgabeport

  ldi r16, 0
  out DDRA, r16 ;Porta als Eingabeport
  ldi r16, 255
  out PORTA, r16 ;Pullups für Eingagsport A aktivieren

;*****************************Hauptprogramm************************************

Hauptprogramm:
  inc r16
  mov r17, r16      ;koppiere r16 in r17
  andi r17, 0b10000000  ;wenn r17 = 128 dann r17neu = 128
  out PORTB, r17       ;Portb = 128
  cpi r16, 255
  brne Hauptprogramm
Zwei:  
  dec r16
  mov r17, r16
  andi r17, 0b10000000
  out PORTB, r17 
  cpi r16, 0
  brne Zwei

jmp Hauptprogramm

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.