- 3D-Druck Einstieg und Tipps         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 42

Thema: PIC...... und viele Fragen.

  1. #11
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    Anzeige

    Powerstation Test
    und wenn du die Beispiele dort Verstanden hat
    Und genau DA hängts....
    Ich seh keinen Ansatz und durch "Programm ansehen" kapier ich da leider nicht das geringste...
    da wird irgendwas konfiguriert, und dann so erklärt, wie ein Fachmann es einem Fachmann erklärt... der Laie steht da und versteht nix.

  2. #12
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    Sooo.... ich stell einfach mal immer weiter Fragen die mir einfallen, mit Eurer Hilfe werden wir das schon packen *GGG*

    Ich beiss mich jetzt mal auf "meinem" demnächst (hoffentlich morgen) kommenden 16F628A fest....

    Bezug: http://www.sprut.de/electronic/pic/c...g_emb.htm#wort

    Also... wenn ich folgendes schreibe
    Code:
    ; Configuration festlegen 
            __CONFIG     B'11110100011100 '
    Müsste ich der Sprut-Seite nach:
    - Programmspeicher ungeschützt
    - EEprom ungeschützt
    - RB4 ist I/O
    - Vdd<4V bewirkt kein Reset
    - Pin4 ist RA5 = I/O
    - direkt Programm starten
    - Watchdog AN
    - benutzt den internen Oszillator

    Oder hab ich nen denkfehler ?

  3. #13
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    Zitat Zitat von r.moshage
    Damit wird dein Programm schonmal nicht das machen was du woltest sondern PORT A einlesen und je nach eingelesenen Wert Teile von PORT B als Ausgang konfigurieren. Ich vermute mal das du nicht SetPort B sondern Port Write nehmen musst (ich kenne den syntax deines Basics nicht)
    CH-Basic:
    Code:
    PIC 16F628
    StartAddress 0x5
    BYTE vartest1
    WORD 
    SBYTE 
    SWORD 
         PortRd A , VARTEST1
         PortOut B , VARTEST1
    ASM:
    Code:
         LIST P= 16F628
         INCLUDE "P16F628.INC"
         RADIX DEC
         ORG  0X5
    AUX1_L EQU  0X20
    AUX1_H EQU  0X21
    AUX2_L EQU  0X22
    AUX2_H EQU  0X23
    AUX EQU  0X24
    S0 EQU  0X25
    VARTEST1 EQU  0X26
         MOVF   PORTA, W
         MOVWF  VARTEST1
         MOVF   VARTEST1, W
         MOVWF  PORTB
         END
    So besser ??
    Jetzt sieht das auch mit dem "PortB" am Ende etwas "logischer" aus...

    Jetzt stellt sich mir allerdings die Frage, warum ich nicht die Variable umgehen kann mit:
    MOVF PORTA, W
    MOVWF PORTB
    ??

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Schau mal bitte auf Seite 98.

    http://ww1.microchip.com/downloads/e...Doc/40044F.pdf

    Du solltest ab und zu mal ins Datenblatt schauen, es steht dort sehr viel Nützliches.

    Klar kannst Du die Variable umgehen, sie ist nichts anderes als ein Register und W ist auch ein "imaginäres" Register.

    Also PortA nach W und W nach PortB. Nur zu.

  5. #15
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    Seite 98 der PDF-Datei oder Seite 98 des Datenblatts ??

    Seite 98 der PDF (Seite 96) ist die Config-Geschichte... gut zu wissen. Danke !

  6. #16
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    So ich bins mal wieder....

    Also ich hab mir nach Vorlage von Sprut auf ner Steckplatine Port A als Eingang (mit 100k Pull-Up an +5V) und Port B als Ausgang (LED und dahinter 1k an Masse) zusammengesteckt.

    Die Konfig kann man bei MP-Lab ja schön zusammen-"klicken"...

    Konfiguration und Programm sieht man HIER

    Trotzdem macht der PIC nix....

    Hülfe !!!

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    17.09.2006
    Ort
    Essen
    Alter
    63
    Beiträge
    83
    Der PIC kann so auch nichts machen weil du erst festlegen mußt ob ein Port als Ein- oder Ausgang funktionieren soll. Dazu mußt du das entsprechende TRIS-Register setzen wobei 1=Input und 0=Output bedeutet. Also um PORT A auf input zu setzen
    MOVLW 0xff
    MOVWF TRISA
    du kannst auch nur einige Bits auf Output stellen dann sieht der erste befehl so aus:
    MOVLW '01011001'


    für das setzen aller bits auf Input reicht:
    CLRF TRISB
    da die PORT und TRIS Register sich in verschiedenen Speicherbänken befinden muß vor jedem ansprechen dieser Register mit BANKSEL auf die entsprechende Bank umgeschaltet werden. Also vor dem einstellen der Datenrichtungsregister einmal BANKSEL TRISA und vor dem ansprechen der Portregister einmal BANKSEL PORTA.

    MFG
    Ralf

  8. #18
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    Kann man das bitte auch mal so schreiben, daß ein Volldepp wie ich das auch kapiert ???
    So komm ich mir nämlich grad vor....

    Ich frag mich dann
    A) warum ein Programm wie CH-Basic, das ja soooo einfach sein soll, das nicht "automatisch" mit einbindet...
    und
    B) warum ich (wie auch die Config-Geschichte) das nicht irgendwo in MP-Lab zum "anklicken" hab....


    Also dann so, oder was ??
    Code:
         LIST P= 16F628A
         INCLUDE "P16F628A.INC"
         RADIX DEC
         ORG  0X5
    AUX1_L EQU  0X20
    AUX1_H EQU  0X21
    AUX2_L EQU  0X22
    AUX2_H EQU  0X23
    AUX EQU  0X24
    S0 EQU  0X25
    VAR01 EQU  0X26
    
    Init    MOVLW 0xff 				; Port A auf Input
            MOVWF TRISA 
            clrf    TRISB           ; Port B OutputOutput 
    
         MOVF   PORTA, W
         MOVWF  VAR01
         MOVF   VAR01, W
         MOVWF  PORTB
         END
    Eben ausprobiert..... NEE, das tuts auch nicht

    Hab eben bei Sprut was rumgesucht....
    Jetzt siehts so aus:
    Code:
    Init    bsf     STATUS, RP0		; auf Bank 1 umschalten
    		movlw	B'11111111'		; PortA Input
        	movwf	TRISA
    		movlw	B'00000000'		; PortB Output
    		movwf	TRISB
    		bcf     STATUS, RP0		; auf Bank 0 zurückschalten
    Jetzt sind RB0 - RB5 aus (bleiben auch aus, RB6 und RB7 sind an..... und wenn ich RA6 betätige, gehen RB6 und RB7 aus.... wenn ich RA6 betätige geht RB6 aus.... wenn ich RB7 betätige, geht RB7 aus...

    Jetzt hab ichs so:
    Code:
    Init    bsf     STATUS, RP0		; auf Bank 1 umschalten
    		movlw	B'00000000'		; PortB Output
    		movwf	TRISB
    		bcf     STATUS, RP0		; auf Bank 0 zurückschalten
    		clrf	PORTB
    aber dann sind RB0, RB6 und RB7 an, der Rest nicht....

    Erklärts doch mal bitte für nen Doofen....

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Möchtest Du mit manuell vorgegebenen Pegeln an PORTA die LED´s an PORTB schalten?

  10. #20
    Benutzer Stammmitglied Avatar von Driona
    Registriert seit
    01.08.2007
    Ort
    Meckenheim
    Alter
    48
    Beiträge
    45
    ich möchte ganz einfach das was an Port A reinkommt... hinten an Port B rausschmeissen....

    Also quasi, alle Pins an Port B aus... und wenn an z.B. RA0 was kommt, soll RB0 auch kommen... RA5 - RB5 eben das selbe....
    eigentlich was ganz einfaches !

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress