- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 33

Thema: Port ansprechen (einzeln)

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Anzeige

    E-Bike
    Zitat Zitat von Alter Knacker
    jetzt kann ich endlich mal rausfinden, wofür man das for i = blablabla braucht
    und es funzt, herzlichen dank, mx3!
    mfg knacki
    Hat Roland Walter das etwa nicht mit aufgeführt

    Schau dir den Link mal an, am besten alles ausdrucken und erstmal durchlesen und dann durcharbeiten. Hat mir auch geholfen.
    Und gut zu verstehen ist der Text auch. Besonder da du ja kein blutiger Anfänger bist sondern auch schon wiesst, um was e sgeht.

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    63
    Beiträge
    512
    naja, so einfach ist das gar nicht

    basic am C64 ging ganz gut, da war aber die hardware nicht so toll.
    assembler-buch von data-becker damals durchgemacht und auch ziemlich gut kapiert, dann hab ichs weggelegt für fast 20 jahre.

    dann html gelernt, ist zwar keine sprache in dem sinn, aber hat doch spass gemacht!

    dann wieder ein wenig c durchprobiert, hat auch spass gemacht, aber eben bloss so kleine sachen wie taschenrechner in kommandozeilenform unter dos.

    unter vb (4 bis 6) hab ich shop-software gemacht, mehr recht und schlecht, für meine damalige freundin, die hatte eine boutique und wollte bloss ein/ausgang im überblick haben, lässt sich mit DAO leicht realisieren.

    aber schleifen habe ich nie kapiert, da bin ich immer ausgestiegen, zB for I = ......

    habe Bücher über c++, php, perl etc. hier rumliegen, aber mehr als zusammenkopiert habe ich nie, geschweige denn verstanden!

    und so gesehen hilft mir dummie auch kein roland walter weiter, ich hoffe, das kann jemand verstehen.
    alleine schon die frage: wieso immer "I"?
    dazu kommt noch, dass ich ganz gut englisch kann, aber kein technisches, und es gibt eben keine deutsche programmiersprache, leider.
    lange rede, kurzer sinn: ich bin ein schwieriger fall
    aber sollte ich diese hürde nehmen, bin ich euch eine party schuldig!
    knacki

  3. #23
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    sag mal, was für ein jahrgang bist du. was für jungs bildest du aus und worin.
    mfg pebisoft

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    63
    Beiträge
    512
    hehe, jahrgang ´62 und ausbildung ab und zu, aber ich arbeite als kameramann und cutter beim privat-tv in oberösterreich.
    früher ewig DJ, dann tontechniker, dann hat mich 3d-studio (dos) gefesselt und dann war das erlernen des premiere 1.0 der nächste logische schritt, dann irgendwann after effects von adobe, die ersten jingles und dann auch schon kamera.
    fast zwei jahre beim orf zwischendurch und jetzt wieder bei den privaten.

    wenn dann junge leute kommen, schmeiss ich auch unterbewusst mit fachausdrücken rum und merke zu spät, dass ich es ja leichter hatte beim lernen, weil die technick noch nicht so weit war bzw ich mehr zeit hatte dafür

    mfg knacki

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    der code von teslanikola ist schon nicht mehr zu begreifen für den anfänger, weil nicht kommentiert.
    Sorry aber bin no ned so lang im Forum, wenn ich Progs tippe lass ich für gewöhnlich die Koms weg.

    Mein Prog ist eigentlich ganz einfach:

    der Basic befehl shift schiebt die 1en und nullen einer Variablen nach rechts oder links und um x stellen ( shift Var., left/right, x)
    So sieht das dann aus wenn man die Var um eine stelle nach links shifted:
    00000001
    00000010
    00000100
    00001000
    00010000
    00100000
    01000000
    10000000
    und so wenn man die Var um eine stelle nach rechts shifted:
    10000000
    01000000
    00100000
    00010000
    00001000
    00000100
    00000010
    00000001
    Aber wie schon von anderen gesagt wurde kann man es auch mit x*2 oder x/2 machen ist aber nicht so gut, weil eine Division oder Multiplikation enorm Rechenleistung beansprucht!
    Code:
    $regfile = "2313def.dat"
    $crystal = 10000000
    Dim A As Byte
    
    Config Portb = Output
    A = 1
    Do
    Do
    Portb = A
    Waitms 10
    Shift A , Left , 1                                          ' Schiebe 1 um eine Stelle nach links und somit auch die LED
    Loop Until A = 128                                          ' wenn eins am "ende" der Var. beende Schiebvorgang
    Do
    Portb = A
    Waitms 10
    Shift A , Right , 1                                         ' Schiebe 1 um eine Stelle nach rechts und somit auch die LED
    Loop Until A = 1                                            ' wenn eins am "ende" der Var. beende Schiebvorgang
    Loop
    SO besser??

  6. #26
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    aber schleifen habe ich nie kapiert, da bin ich immer ausgestiegen, zB for I = ......
    Verschiedenen Schleifen und IF-Abfragen machen aber doch gerade wenn man noch nicht so richtig gut programmieren kann das halbe Programm aus. Die würde ich mir schon mal genauer ansehen.

    und so gesehen hilft mir dummie auch kein roland walter weiter, ich hoffe, das kann jemand verstehen.
    alleine schon die frage: wieso immer "I"?
    Das I hat sich als Zählervariable einfach so eingebürgert, genauso wie man im Koordinatensystem die Achsen meist mit X und Y bezeichnet.
    Du kannst aber statt I auch jede andere Variable verwenden. Bei verschachtelten Schleifen macht man das ja auch oft, z.B.:
    Code:
    For I = 1 to 10
       For J =  1 to 10
          .......
       Next J        
    Next I
    Das I, bzw. J hinter dem Next kannst du in Bascom glaube ich auch weglassen.

    Die Funktion der Schleife ist eigentlich ganz einfach. Die Schleife fängt bei For an und hört bei Next auf. In jedem Durchlauf wird I um 1 hochgezählt. D.h. bei For I = 1 to 10 wird die Schleife 10 mal durchlaufen.
    Oft wird die Zählervariable dann auch noch innerhalb der Schleife verwendet. Z.B. sollte dir der folgende Code die Zahlen 1 bis 10 ausgeben:

    Code:
    For k =  1 to 10
        Print k
    Next k

    oder würde es reichen, wenn ich das mit left/right und byte*2 einfach kapiere und abhake?
    Irgendwas einfach kapieren ist eigentlich immer gut
    Mir persönlich gelingt es nur leider oft nicht so einfach.

    Aber das mit dem Left/Right ist eigentlich recht einleuchtend, wenn man sich die passenden Werte im Binärsystem mal als Tabelle aufschreibt:

    Code:
    &B00000000 = 0   = 0   = 0 
    &B00000001 = 2^0 = 1   = 1
    &B00000010 = 2^1 = 2   = 2
    &B00000100 = 2^2 = 4   = 2*2
    &B00001000 = 2^3 = 8   = 2*2*2
    &B00010000 = 2^4 = 16  = 2*2*2*2
    &B00100000 = 2^5 = 32  = 2*2*2*2*2
    &B01000000 = 2^6 = 64  = 2*2*2*2*2*2
    &B10000000 = 2^7 = 128 = 2*2*2*2*2*2*2
    -----------------------------------------------------------
    &B11111111 = 255
    Eine Multiplikation mit 2 bedeutet, dass das Bit im Binärsystem eins nach links geschoben wird, bzw. das verschieben eines Bits nach links bedeutet eine Multiplikation mit 2, das verschieben nach rechts eine Division durch 2.

    Ich glaube allerdings dein Beispiel mit dem Lauflicht ist keine besonders typische Anwendung. Bei manchen Ports sind gar nicht alle 8 Pins verfügbar und viele Pins haben Sonderfunktionen, z.B. PWM, Interrupt, Counter usw.
    Ausserdem brauchen die meisten Dinge die man anschliesst, z.B. Motoren, Sensoren, Taster, LEDs usw. nur einzelne Pins und das teilweise als Eingang, teilweise als Ausgang.

    Einen kompletten Port auf einmal zu schalten mag zwar programmiertechnisch eleganter sein, aber übersichtlicher ist es bestimmt nicht, wenn man in einem Befehl mehrere eigentlich völlig unabhängige Dinge, z.B. verschiedene Motoren, Sensoren usw. schaltet.

    Ich würde da lieber die Möglichkeit von Bascom nutzen verschiedene Routinen und Funktionen für Motoren, Sensoren, zu definieren und in diesen Routinen die Pins so wie du es gleich zu Anfang gemacht hast einzeln über Portx.x ansprechen.
    Dann ist meiner Meinung nach die Gefahr, das z.B. nach einer Änderung an der Motorsteuerung plötzlich alle Sensoren die am selben Port hängen
    verrückt spielen wesentlich geringer.

    Ich würde den Quellcode einfach so schreiben, wie du ihn selber am besten verstehst. Irgendwelche trickreichen Konstrukte die den Quelltext abkürzen bringen wenig, wenn man sie ein paar Wochen später selber nicht mehr durchschaut.
    Ausserdem bedeutet ein kürzerer Quelltext ja auch nicht unbedingt, dass der Code den Bascom daraus kompiliert kürzer ist.

    lange rede, kurzer sinn: ich bin ein schwieriger fall
    aber sollte ich diese hürde nehmen, bin ich euch eine party schuldig!
    knacki
    Wie darf man sich so eine Party denn vorstellen? Schellack Platten, Kamillentee, Weichgebäck und als
    Stimmungsmacher nen Klosterfrau Melissengeist?
    (dann komme ich - bin nämlich genauso ein alter Knacker wie du )

  7. #27
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    63
    Beiträge
    512
    Zitat Zitat von recycle
    Wie darf man sich so eine Party denn vorstellen? Schellack Platten, Kamillentee, Weichgebäck und als
    Stimmungsmacher nen Klosterfrau Melissengeist?
    (dann komme ich - bin nämlich genauso ein alter Knacker wie du )
    LOL
    wenn, dann gehts da eher um live-musik, grillen, saufen und quasseln, also nur um den spass an und für sich, wie bei der selbstbefriedigung
    keine angst, auch medls kommen zu solchen parties, wenn auch erst wenige.
    ich hab sogar eine eigene seite eingerichtet, allerdings für ein anderes board, aber macht ja nix, es geht ja ums kennenlernen...
    www.boardtreffen.de

    sollte sich hier jemand mit php bzw phpbb2 sehr gut auskennen, würde meine idee von damals ja auch für dieses board platz bieten.
    zur zeit kann man nämlich die treffen und den zugang der verschiedenen leute nicht trennen, und ich will nicht, dass die fotos "fremden" zugänglich sind.
    wäre nicht schlecht, wenn jedes board und jedes treffen eigene zugangsberechtigungen und eigene mods hätte, dann wärs schon perfekt.

    aber ihr seid natürlich auch beim treffen von www.w4fboard.de eingeladen, wieso nicht?
    termin steht noch nicht fest, aber jeder kann an der abstimmung teilnehmen.....
    mfg knacki

  8. #28
    Gast
    Danke, Jungs,
    das war ganz informativ.
    Bernd =D>

  9. #29
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    37
    Beiträge
    378
    Hi
    Ich greiffe nun diesen Thread aufgrund 2 Fragen meinserseits nochmal auf^^
    *duck*

    Ich bin auch schon am Lauflichterprogramme durcharbeiten, bin aber bei einzelnen noch verwirrt

    Nr1:
    Code:
     $regfile = "m32def.dat"
    $crystal = 16000000
    Dim A As Byte
    
    Config Portc = Output
    A = 1
    Do
    Do
    Portc = A
    Waitms 200
    Shift A , Left , 1                                          ' Schiebe 1 um eine Stelle nach links und somit auch die LED
    Loop Until A = 128                                          ' wenn eins am "ende" der Var. beende Schiebvorgang
    Do
    Portc = A
    Waitms 200
    Shift A , Right , 1                                         ' Schiebe 1 um eine Stelle nach rechts und somit auch die LED
    Loop Until A = 1                                                            ' wenn eins am "ende" der Var. beende Schiebvorgang
    Loop
    Zu diesem Programm:
    1.
    Wenn es heisst:
    Portc = A
    Ist dann automatisch portc.0 als erster wert gedacht?

    2.
    Loop Until A = 128
    Wieso 128? Er rackert sich doch von 1 bis 7 durch, wieso nicht:
    Loop Until A = 7
    ??


    Und noch was:
    wenn ich die Erste LED permanent ausschalten will, wie muss ich das machen?
    Wieso gehts mit diesem Programm hier nicht?
    Code:
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    $baud = 9600
    Config Portc = Output
    Do
    
      Portc.1 = 0
    
    Loop

    ^^
    Das wars vorerst...

    cu & danke
    Serge

  10. #30
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    Zitat Zitat von Roboter n00b
    Ist dann automatisch portc.0 als erster wert gedacht
    Also wenn man schreibt Portc = x da werden die Ausgänge nach dem binärsystem geschaltet
    1 = portc.0 auf 1
    2 = portc.1 auf 1
    4 = portc.2 auf 1
    8 = portc.3 auf 1
    ...
    9 = Portc.0 und Portc.3 auf 1

    deshalb auch Until A = 128, da 128 für Portc.7 steht.

    wen du eine LED permanent aus haben willst heist das einfach Portx.y = 0

    sie wird dann erst angeschaltet wenn du den portx.y auf hight setzs

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress