- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 8 von 8

Thema: Wie kann ich eine Variable mit unterschiedlichen Werten in einer Schleife füllen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Zitat Zitat von waldi_n Beitrag anzeigen
    OK, wenn Effektivität in Größe und Geschwindigkeit im Vordergrund stünden, müsste ich mich eh in C oder Assembler versuchen
    Wo hab ihr eigentlich solche Vorurteile her?

    Was du mit deinen Programm bezwecken möchtest hab ich zwar nicht verstanden aber ich erkläre es mal so.

    Code:
    config Porta = output 'kompletten Port A als Ausgang definieren
    
    Porta =&B11111111 'alle Pins auf High setzen 
    Porta = 255 ' macht das Gleiche, nur in dezimaler Schreibweise
    
    Porta.0 = 1 ' nur PortA.0 einschalten
    Porta.0 = 0 ' Nur PortA.0 ausschalten 
    
    config Porta = input ' kompletten Port A als Eingang setzen
    Porta = &B11111111 ' Alle Pullups von Port A aktivieren
    Dim A as Byte
    
    A = Pina ' komplette Zustandstabelle von Porta in die Variable A geschrieben. 
    A = Pina.0 'nur Zustand von Pina.0 in die Variable A geschrieben
    
    
    '#####################################################
    'ADC
    '#####################################################
    
    Config ADC = Single, Prescaler = Auto ' ADC einstellen, Single ist nötig für den GetADC Befehl, mit Prescaler Auto stellt sich Bascom die Abtastgeschwindigkeit selbst ein.
    
    Dim Anlg as Word ' Variable definieren (die meisten Controller haben 10Bit ADCs. Deswegen die Variable als Word, Integer würde auch gehen
    
    Start ADC ' alle ADCs werden gestartet.
    
    Anlg = GetADC(0) 'Frage den ersten ADC (AIN0) ab und schreibe den Wert in die Variable Anlg
    Hoffe es hilft/ da war Michael schneller

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Zitat Zitat von Picojetflyer Beitrag anzeigen
    Wo hab ihr eigentlich solche Vorurteile her?
    Von Leuten mit mehr Erfahrungen als wir?
    Gab hier erst neulich nen Thread, wo jemand den gleichen Code in Bascom und C programmiert hat und der in C war 14x schneller. Und wieso tun sich so viele C und ASM an, wenns in Bascom angeblich genauso gut funktioniert?? (Und ich spreche hier nicht davon, ob C oder Bascom besser für Anfänger geeignet ist.) Passt irgendwie nicht zusammen.
    Aber ich sehs schon kommen, in den nächsten 2 Seiten wird mir jetzt sicher wieder erklärt, dass Bascom genauso gut ist und das ich total falsch liege...

    BTT
    Um Ports zu setzten, brauchst du keine Schleife. Geht ganz einfach. Leider kann ichs dir nur in C sagen:
    Code:
    PORTx |= (1<<MEIN_BIT);
    
    Z.B.
    PORTA |= (1<<PA0) | (1<<PA5);
    Um den ADC auszulesen brauchst du sowieso ne Funktion, die kann man dann wieder in einer Schleife durchlaufen.
    Z.B.
    Code:
    uint_16 ADC_Read(int channel);
    
    for(...) {
      val = ADC_Read(i);
      ...
    }
    mfg

Ähnliche Themen

  1. Wie kann ich eine Metrallplatte zuschneiden?
    Von tach810i im Forum Mechanik
    Antworten: 14
    Letzter Beitrag: 01.08.2013, 19:50
  2. Antworten: 8
    Letzter Beitrag: 22.07.2008, 18:05
  3. Wie kann ich in eine If einen Bereich auswerten?
    Von Henry im Forum C - Programmierung (GCC u.a.)
    Antworten: 11
    Letzter Beitrag: 30.05.2007, 16:53
  4. Wie entnehme ich einer variable bestimmte bits als neue Var?
    Von Kaiser-F im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 31.08.2005, 08:38
  5. Antworten: 5
    Letzter Beitrag: 25.02.2005, 06:50

Stichworte

Berechtigungen

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

Labornetzteil AliExpress