-
        

Ergebnis 1 bis 9 von 9

Thema: Bascom ATmega8

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.10.2010
    Beiträge
    20

    Bascom ATmega8

    Anzeige

    Hi,

    Ich habe mir ein STK500 spendiert und habe damit ein kleines Problem ich hoffe einer von euch kann mir helfen.
    Mein Problem:

    Wenn ich in den ATmega8 mit diesem Code flashe:

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config PORTD.0 = output
    Config PORTD.1 = output
    Config PORTD.2 = output
    Config PORTD.3 = output
    
    PORTD.0 = 1
    PORTD.1 = 1 
    PORTD.2 = 1
    PORTD.3 = 1
      
    end
    Dann geht keine einzige led an(ich habe die led´s nartürlich mit den Ports verbunden 9
    wüstet ihr villeivht eine Lösung???

    mfG
    Tanne123

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von High Light
    Registriert seit
    21.08.2009
    Ort
    Baden Württemberg
    Beiträge
    142
    Hallo Tanne123,

    Wenn du einzelne Pins als Output deklarieren möchtest,
    musst du es so schreiben:

    Config PIND.0 = output
    Config PIND.1 = output
    Config PIND.2 = output
    Config PIND.3 = output

    Genau so dann auch, wenn du ihnen den Wert zuweist:

    PIND.0 = 1
    PIND.1 = 1
    PIND.2 = 1
    PIND.3 = 1

    Wenn du einen ganze Port deklarieren möchtest, kannst du schreiben:

    Config PortD = Output


    Grüße High Light

    P.s.: Eins noch, ich hatte auch schon den Fall, dass je nachdem wie ich die
    LEDs geschalten hatte, sie auch nur dann angingen, wenn ich ihnen den Wert 0 gab und bei 1 waren sie aus.
    __________________________________________________ _____________
    http://pe-products.jimdo.com/

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    ODER:
    DDRD = &B00001111
    PORTD = &B00001111
    ODER:
    DDRD.0 = 1
    DDRD.1 = 1
    DDRD.2 = 1
    DDRD.3 = 1
    PORTD.0 = 1
    PORTD.1 = 1
    PORTD.2 = 1
    PORTD.3 = 1
    Normalerweise ist die "PIN"-Anweisung eine Abfrage bei Input-Betrieb,
    ich weiss jedoch nicht genau, wies bei den "Config"-Anwesungen ist,
    da ich diese nicht nutze... zuviel Schreiberei.
    Die LEDs: Kathodenseitig an GND, Anodenseitig an den Ausgangspin,
    und Widerstand in Reihe mit der LED. VG Micha

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Vorsicht - Ausgänge über PINX.Y auf High oder Low zu setzen, ist nicht ganz unproblematisch... meine Bascom-Version (1.11.8.8.) lässt es mir schlicht nicht durchgehen, wenn ich schreibe

    PINX.Y = 1

    Sie meckert dann zu recht an, dass man Inhalte des PIN-Regsters nicht beschreiben kann.

    Was immer wahr ist, ist folgendes:

    Ausgänge werden mit PORTX.Y = Z auf 0 oder 1 gesetzt
    Eingänge werden mit PINX.Y abgefragt

    Mit dem Konfigurieren als Ein- oder Ausgänge scheint´s auch verschiedene Wahrheiten zu geben: Ich habe z.B. gerade mal im Simulator beides probiert:

    Config PINB.3 = output
    und
    Config PORTB.3 = output

    Beide male wurde DDRB.3 korrekt auf 1 gesetzt.

    Am einfachsten und unmissverständlichsten ist es, direkt über´s DDR-Register festzulegen, welcher Anschluss als Eingang und welcher als Ausgang konfiguriert sein soll.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Oder Set Portd.1 für HighPegel
    und Reset Portd.1 für LowPegel

    D.0 und D.1 sind RXD und TXD der seriellen. Wenn in den Optionen eine Baudrate angegeben ist, werden diese Pins automatisch belegt. Eine Hauptschleife sowie die Stackkonfiguration könnten auch nicht schaden, sonst nimmt Bascom die Einstellungen aus den Optionen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.10.2010
    Beiträge
    43
    Hi,
    1. LEDs richtig angeschlossen (- + nicht vertauscht)
    2. Normalerweisen liegen die LEDs auf 0V und bekommen 5V vom µC
    (portd.1 = 1) falls die Leds auf 5v liegen brauchst du 0V am µC (portd.1=0)
    3. richtiger Vorwiderstand für LEDs???
    4. µC ist nicht richtig in der Fassung

    Berichte doch mal ob das Problem schon finden und beheben konntest

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    beim stk500 gehen die LEDs an +5V, das bedeutet, die leuchten wenn der Port auf 0 gesetzt wird ... stammt noch aus der Zeit als die AVR mehr Strom sinken als sourcen konnten.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    23.10.2010
    Beiträge
    43
    beim stk500 gehen die LEDs an +5V, das bedeutet, die leuchten wenn der Port auf 0 gesetzt wird ... stammt noch aus der Zeit als die AVR mehr Strom sinken als sourcen konnten.
    na da haben wir doch das Problem.

    Versuch mal den Code zum testen! da sollten alle angehen.

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Portd = Output
    
    Led1 Alias Portd.0
    Led2 Alias Portd.1
    Led3 Alias Portd.2
    Led4 Alias Portd.3
    
    'Schleife
    Do
    
       Toggle Led1
       Waitms 500
       Toggle Led2
       Waitms 500
       Toggle Led3
       Waitms 500
       Toggle Led4
       Waitms 500
    
    Loop
    
    End

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Vitis
    beim stk500 gehen die LEDs an +5V, das bedeutet, die leuchten wenn der Port auf 0 gesetzt wird ... stammt noch aus der Zeit als die AVR mehr Strom sinken als sourcen konnten.
    Ja und das noch über eine Eigenartige Treiber Schaltung. VCC > R >LED > C > E > PInx.y Die Basis vom Transistor ist über einen R fest auf VCC. Was immer das auch soll?

    Gruß Richard

Berechtigungen

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