Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom ATmega8
Tanne123
25.12.2010, 13:04
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:
$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
High Light
25.12.2010, 14:11
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.
hardware.bas
25.12.2010, 14:37
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
Sauerbruch
25.12.2010, 16:11
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.
peterfido
26.12.2010, 00:29
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.
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
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.
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.
$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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.