Antworten

Der Beitrag verursachte die folgenden Fehler, die behoben werden müssen:
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.
Einschränkungen: 8 pro Beitrag (8 verbleibend), maximale Gesamtgröße 8,79 MB, maximale Individualgröße 1 MB
Entfernen Sie den Haken der Dateianhänge, die gelöscht werden sollen
Klicken Sie hier oder ziehen Sie Dateien hierher, um sie anzuhängen.
Anhänge und andere Optionen
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Zusammenfassung

Autor picass
 - 18.11.2022, 17:51:31 CET
Räusper.... gestern ist mir eine Begriffsverwirrung unterlaufen: das Prog "hallo world" lässt ja nur eine LED aufleuchten. Selbst hatte ich das Folgeprog, also das Blinken einer LED im Sinne, daher traf eine Kommentierung leider daneben. :(

-------------------------------------------------------------------------------
; *******************************************************************
; Lesson 1 - "Hello World"
;
; The LEDs are connected to input-outpins (I/O) RC0 through RC3. First, the I/O pin
; must be configured for an output. In this case, when one of these pins is driven high
; (RC0 =  1 ), the LED will turn on. These two logic levels are derived from the power-
; pins of the PIC MCU. Since the PIC devices power pin (VDD) is connected to 5V
;and the source (VSS) to ground (0V), a 1 is equivalent to 5V, and a 0 is 0V.
;
; This turns on DS1 LED on the Low Pin Count Demo Board.
;
; PIC: 18F14K22
; Compiler: MPASM v5.43
; IDE: MPLABX v1.10
;
; Board: PICkit 3 Low Pin Count Demo Board
; Date: 6.1.2012

; *******************************************************************
; * See Low Pin Count Demo Board User's Guide for Lesson Information*
; *******************************************************************

#include <p18F14K22.inc>

   ;Config settings 
   CONFIG IESO = OFF, PLLEN = OFF, FOSC = IRC, FCMEN = OFF, PCLKEN = OFF
   CONFIG BOREN = SBORDIS, BORV = 19, PWRTEN = OFF, WDTEN = OFF
   CONFIG MCLRE = OFF, HFOFST = OFF, DEBUG = OFF, STVREN = ON
   CONFIG XINST = OFF, BBSIZ = OFF, LVP = OFF
   CONFIG CP0 = OFF, CP1 = OFF
   CONFIG CPD = OFF, CPB = OFF
   CONFIG WRT0 = OFF, WRT1 = OFF
   CONFIG WRTB = OFF, WRTC = OFF, WRTD = OFF
   CONFIG EBTR0 = OFF, EBTR1 = OFF
   CONFIG EBTRB = OFF

   errorlevel -302         ;supress the 'not in bank0' warning

   ORG 0
Start:
    bcf     TRISC,0       ;make IO Pin C0 an output
    clrf    LATC            ;init the LATCH by turning off everything
    bsf     LATC,0        ;turn on LED C0 (DS1)
    goto    $                 ;sit here forever!

   End
----------------------------------------------------------------------------------------------------------------
Habe mir mal erlaubt, die erste der genannten 13 Lektionen im Microchip Original einzustellen. Dafür braucht man natürlich eine MPLAB X IDE bis Vers. 5.35. Aber wie erfrischend kurz dies Programm ausfällt, kann man ja im Vergleich sehen. Dagegen ist das PIC As-Prog eines für Stotterer und mehr als doppelt solang.

Die ORG-Anweisung..... wie ich dazu komme, die immer noch....? Ist u.a. eine Frage, auf welchem Wege man in das Selbst-Erlernen von Assembler einstieg. Bei mir lief das immer über funktionierende Beispiele. So war das ganz früher mit der Z80-CPU, beim  PIC gelang das mithilfe der 13 Lektionen von Microchip. Und da mir für meine Steuerprogramme der PIC18F14K22 immer noch mehr als genügt – davon habe ich ca. 20 Stück noch im Vorratsfach - , werde ich auch beim MPASM bleiben. Das Stotterer-Prog dient ausreichend als abschreckendes Beispiel für ,,Angesagtes."

Mir reicht es, wenn ein Programm funktioniert und wenn da Jahrzehnte Altes dazu beiträgt, kann ich auf neue Stotterübungen und Komplizierungen bestens verzichten.
Grüße, picass
Autor vloki
 - 18.11.2022, 11:34:58 CET
Zitat von: misax in 17.11.2022, 18:05:56 CETKann es sein dass die meisten hier im Forum noch den MPASM haben und ich, da ich die Version 6 von der MPLAB IDE habe, den pic-ass und es zwischen den beiden Unterschiede gibt, wie ein Programm aufzubauen ist ?
Ich glaub die Antwort hier https://www.mikrocontroller.net/topic/546142#7255941
trifft es ganz gut ;-)
Zitat...
Das (der pic-as) ist nun kein "Einfach-Absolut-Assembler" wie MPASM.
Man muss das Handbuch lesen wenn man ihn benutzen will.
...
Mit dem ersten Versuch nur den Code des Beispiels 7. Interrupts and Bits Example For Mid-range Devices zu kopieren, bin ich gleich mal gescheitert.
Das Programm landete irgendwo im Speicher und der IR hat null funktioniert.
(Kann man im Debug-Modus ja sehen, wenn man das Program-Memory anzeigen lässt)

Man muss dann schon wissen, wie das mit den Programsections funktioniert.
Das erfährt man aber in 7.4 Building the Example
Die vier Seiten bis dahin kann man schon mal lesen, aber ist jetzt nicht unbedingt was für blutige Anfänger ;)
Autor pic18
 - 17.11.2022, 19:08:34 CET
wie hast du denn den Ausgang beschaltet? Ich habe im Datenblatt gesehen, das der Port auch ein Open-Drain Control Register hat.
Ist der Quarz auch richtig programmiert? was heißen diese Zeilen?
config FEXTOSC = OFF
config RSTOSC = EXT1X
Autor picass
 - 17.11.2022, 18:59:57 CET
Ja, ich benutze noch den Vorgänger des jetzt aktuellen Assemblers. Aber bleibe ruhig beim Neuen, es gibt schon Unterschiede.
Aber so wie ich dein Programm lese, läuft das einmal schnellstens durch mit Ein-u. Ausschalten eines Ports, wobei man bei der irren Geschwindigkeit natürlich nie was beobachten kann, und am Ende läuft es in eine Endlosschleife, in der nichts passiert.

Du hattest doch schonmal einen Programmentwurf mit einer Zeitschleife als Pause. Nur so kannst du beim Blinken zuschauen.
Grüße, lippe1audi
Autor misax
 - 17.11.2022, 18:05:56 CET
Kann es sein dass die meisten hier im Forum noch den MPASM haben und ich, da ich die Version 6 von der MPLAB IDE habe, den pic-ass und es zwischen den beiden Unterschiede gibt, wie ein Programm aufzubauen ist ?
Autor misax
 - 17.11.2022, 17:21:35 CET
welcher Assembler ist denn jetzt der neuere ? MPASM pder pic-ass ?
Autor vloki
 - 17.11.2022, 17:12:52 CET
Wie zum Henker kommst du auf die Idee mit dem ORG ?
(das ist eigentlich schon Jahrzehnte obsolet)

Nimm doch einfach die Beispiele im User_Guide_for
_Emb... (Kapitel 4 oder 7)
Autor misax
 - 17.11.2022, 17:06:31 CET
das Beispiel-blink-Programm habe ich mir angeschaut, aber das ist mit MPASM erstellt und nicht mit pic-ass. Als ich versuchte, MPASM zu installieren, komme ich auf Hinweise, das sei mit der MPLAB IDE schon integriert, aber ich kann es auf der Übersichtsseite, wo man den Compiler auswählt, nicht sehen.
Autor misax
 - 17.11.2022, 16:42:44 CET
die Zeilen 61 bis 63 habe ich jettzt ersetzt durch
    banksel LATA
    movlw   0b00000100
    movwf   LATA
aber es geht immer noch nicht.
Ich will beobachten, dass die LED leuchtet.
Autor pic18
 - 17.11.2022, 16:35:33 CET
Zitat von: picass in 17.11.2022, 16:17:46 CETWenn du deine PICs - so wie bisher - mit 10 MHz betreibst, wird es auch nicht möglich, da irgendwas zu beobachten, zumal auch keine Zeitschleife eingebaut ist.


Er hat am Ende des Programms eine Endlosschleife, dadurch wird nur einmal der Port gesetzt. (wenn richtig programmiert)

Similar topics (4)