-         
Ergebnis 1 bis 5 von 5

Thema: Geschwindigkeitsanzeige

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.03.2008
    Ort
    Braunschweig
    Alter
    27
    Beiträge
    36

    Geschwindigkeitsanzeige

    Anzeige

    Hallo,

    ich bastel jetzt schon fast 2 monate an einem projekt, worum es dabei geht die geschwindigkeit eines fahrzeuges zu erfassen und anzuzeigen, sowie über eine fernbedienung signale ins fahrzeug zu übertragen die, dem fahrer befehle geben soll.

    ich arbeite mit einem ATMEGA128, als anzeige habe ich ein Glcd mit sed-controller (ks0108b), als drehzahlsensor einen reedkontaktschalter und ein Funkmodul für die fernbedienung.

    ...also mein problem besteht nun darin, das mein glcd nur pixelmüll anzeigt (habs schon mit pull ups versucht, JTAG ist auch aus)
    ...und mein hauptsächliches prob ist, das mein Funkmodul 8 kanäle hat, die masse geschaltet sind und ich möchte das wenn einer von acht low ist
    einen anderen pin auf high schalten...bloß leider klappt es nicht

    das wär ebend mein ansatz:
    Code:
    .....
    config Portb = output
    config portf = output
    
    set portb
    set portf
    
    if portb.0 = 0 then portf.0 = 1
    .....
    vlt habt ihr noch n paar ideen

    sry wenn vlt n falsches unterforum ist

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.06.2008
    Ort
    Rösrath
    Alter
    33
    Beiträge
    332
    Also irgendwie fehlt da der Code.. Aus dem kleinen Schnippsel kann man leider nicht wirklich was rauslesen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.03.2008
    Ort
    Braunschweig
    Alter
    27
    Beiträge
    36
    sooo hir ist das übel was mir schlaflose nächte bereitet....


    Code:
    $lib "glcdks108.lib "
    
    $crystal = 16000000
    $regfile = "m128def.dat"
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    
    'LCD pin
    
    ' 1       Vss            GND
    '2        Vdd            +5V
    '3        V0             poti
    '4        D/I            Cd
    '5        R/W            Rd
    '6        E              enable
    '7-14     DB             Porta
    '15       Cs1            Ce1
    '16       Cs2            Ce2
    '17       RESET          reset
    '18       Vee           poti
    '19       A             7,2V
    '20       K             Gnd
    
    Config Portc = Output
    
    
    Config Porta = Output
    
    
    Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 2 , Ce2 = 5 , Cd = 1 , Rd = 0 , Reset = 4 , Enable = 3
    
    Wait 1
    
    
    Locate 16 , 1 : Lcd "Geschwindikeitsanzeige"
    
    Cls
    
    
    
    '--------------------------------------------------------------------------
    
    '**********************
    '
    'FUNKMODUL KOMMUNKATION
    '
    '**********************
    
    config Portb = output     'verbunden mit den eingängen des funkmoduls
    config portf = output      'verbunden mit LEDs die ein signal geben
    
    set portb 
    set portf 
    
    if portb.0 = 0 then portf.0 = 1 
    
    if portb.1 = 0 then portf.1 = 1
    
    if portb.2 = 0 then portf.2 = 1
    
    
    '--------------------------------------------------------------------------
    
    '*********************************
    '
    'GESCHWINDIGKEITSMESSUNG & AUSGABE
    '
    '*********************************
    
    Set Pind.6                                                  'Pullup aktiv
    
    Config Pind.6 = Input                                       'Konfiguration des Timer/Counter und Signalinput für Geschwindigkeitsanzeige
    Config Int0 = Falling
    Config Timer1 = Timer , Prescale = 1024
    
    
    Const Timervorgabe = 3036                                   ' festgelegte Konstanten
    Const Schraubenprowelle = 6                                 '
    Const Reifenumfangincm = 127                                '
    
    
    Dim Reifenumfanginkm As Long                                'Dimensionierung der Bytes zur Berechnung der Geschwindigkeit
    Dim Zaehlerirq0 As Long                                     '
    Dim Impulseprosekunde As Long                               '
    Dim Impulseprostunde As Long                                '
    Dim Umdrehungenprostunde As Integer                         '
    Dim Kilometerprostunde As Integer                           '
    
    
    
    Zaehlerirq0 = 0                                             'Prozedur Timer
    On Int0 Irq0
    Enable Int0
    
    On Timer1 Timer_irq
    Enable Timer1
    
    Enable Interrupts
    
    
    Do
    
       Cls
           'Das Programm brechnet die Geschwindikeit und zeigt sie auf dem LCD  an
       Print
       Reifenumfanginkm = Reifenumfangincm / 100000
       Impulseprostunde = Impulseprosekunde * 3600
       Umdrehungenprostunde = Impulseprostunde / Schraubenprowelle
       Kilometerprostunde = Umdrehungenprostunde * Reifenumfanginkm
    locate 2 , 2 :  Lcd Kilometerprostunde
    Locate 3 , 3 : Lcd "Km/h"
    
       Waitms 30
    
    Loop
    
    End
    
    
    Irq0:
     Incr Zaehlerirq0
    Return
    
    
    Timer_irq:
      Timer1 = Timervorgabe
      Impulseprosekunde = Zaehlerirq0
      Zaehlerirq0 = 0
      Return
    
    
    '---------------------------------------------------------------------------
    
    '****************************
    '
    'ZUFALLSGENERATOR
    '
    '****************************
    
    'die drei ausgänge sollen alternativ auch über einen zufallsgenerator aktiviert werden
    
    Dim A As Byte
    Dim Count As Byte
    Dim Lotto As Byte
    
    
    
    Do
    
    Cls
    
    Print A
    Incr A
    
    Count = Rnd(12)
    Lotto = Count + 2
    Print Count
    
    
    
    
    Waitms 30
    
    Loop Until A = 40
    
    End

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Wenn Du den kompletten PortB auf 1 setzt - wieso fragst Du ihn dann mit If-Then ab? Soweit ich den Code überblicke, wird dort auch nirgendwo anders PortB verändert...

    Code:
    set portb
    set portf
    
    if portb.0 = 0 then portf.0 = 1
    if portb.1 = 0 then portf.1 = 1
    if portb.2 = 0 then portf.2 = 1
    Und ich könnte mir vorstellen, dass Bascom meckert, wenn If-then ohne "End if" oder "Else" geschrieben wird...


    Code:
    Set Pind.6                                                  'Pullup aktiv
    Außerdem muss der PullUp-Widerstand mit Set Portd.6 aktiviert werden!

    Und hat der Zufallszahlengenerator eine weiterreichende Bedeutung für das Programm?

    Vielleicht kannst Du das Projekt ja nochmal etwas präziser schildern...?

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    44
    Beiträge
    2.240
    die abfrage

    if portxy.0 = 0 then

    bringt nix. pinstatus abfragen macht man mit

    if pinxy.0 = 0 then
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Berechtigungen

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