Forum: Mikrocontroller und Digitale Elektronik Lauflicht schalten


von Matthias H. (heili)


Lesenswert?

Habe nun das Lauf licht gesteckt.
Programmcode siehe hier:

$regfile = "m8def.dat"
$crystal = 1000000

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output

Do

  Portc.0 = 1
  Portc.0 = 0
  Waitms 100
  Portc.1 = 1
  Portc.1 = 0
  Waitms 100
  Portc.2 = 1
  Portc.2 = 0
  Waitms 100

Loop

End

Aber es leuchten die Led's immer dauerhaft...und nur ganz schwach!
Das sind eigentlich ultrahelle LED's warum leuchten die denn so schwach? 
selbst wenn dich die Widerstände kleiner wähle bleiden sie  so schwach.

Oder muss ich noch unter Fuses iwas einstellen?

von Sam .. (sam1994)


Lesenswert?

Kein Wunder du schaltest sie auch gleich wieder aus.

Das hier:
Portc.x = 0
gehört hinter waitms

eigentlich sollten sie gar nicht leuchten.

von Matthias H. (heili)


Lesenswert?

$regfile = "m8def.dat"
$crystal = 1000000

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output

Do

  Portc.0 = 1
  Waitms 500
  Portc.1 = 1
  Waitms 500
  Portc.2 = 1
  Waitms 1000
  Portc.0 = 0
  Portc.1 = 0
  Portc.2 = 0
  Waitms 200

Loop

End

Jetzt hab ich versuch das sie nacheinander an gehen und dann alle 
aus...aber die leuchten trotzdem nur so schwach und dauerhaft...
Der USBsmart light Programmer liefert ja die 5V....aber das die so 
dunkel sind versteh ich net.

von Karl H. (kbuchegg)


Lesenswert?

wie genau hast du sie denn angeschlossen?

von Sam .. (sam1994)


Lesenswert?

Sieht eigentlich ok aus. Gib mal ein paar mehr infos (Controller, 
Aufbau...)

von Matthias H. (heili)


Lesenswert?

Atmega8 ist der Controller...
Auf dem Brett ist jetzt der myusbsmart stick mit dem controller 
verbunden. (auslesen und flashen geht)
Dann hab ich am Pin 22-23 die led's hängen mit Vorwiderstand.

von Matthias H. (heili)


Lesenswert?

Wenn ich jetzt im AVR Studio 4 auf "Read Signature" klicke dann blinken 
die drei Led's ganz schnell aber alle gleichzeitig und richtig hell....

von Sam .. (sam1994)


Lesenswert?

Nimm mal ein paar andere Pins als die für SPI. Da gibts wenn ich mich 
richtig erinnere bestimmte "Regeln".

von Matthias H. (heili)


Lesenswert?

Welche, würdest du empfehlen?
Ich soll dann einfach mal Port D nehmen?

von Matthias H. (heili)


Lesenswert?

Unter Fuses muss ich nichts einstellen?

von Sam .. (sam1994)


Lesenswert?

Lass die Fuses mal, die sind meist ganz gut.

Sry, ich hab grad geschlafen, PORTC ist ja gar kein SPI. Eigentlich 
müsste es funktionieren. Überprüfe vielleicht deinen Aufbau nochmal: Es 
sollte so aussehen: PORTC -> Vorwiderstand + LED -> GND

von Floh (Gast)


Lesenswert?

Matthias H. schrieb:
> aber die leuchten trotzdem nur so schwach und dauerhaft...

sicher dass dein uC mit 1 MHz läuft?
Wenn er mit 8 MHz laufen würde, könnte das das Fehlerbild erklären.

von Sam .. (sam1994)


Lesenswert?

Floh schrieb:
> sicher dass dein uC mit 1 MHz läuft?
> Wenn er mit 8 MHz laufen würde, könnte das das Fehlerbild erklären.

Hab ich auch schon gedacht, aber die längeren Wartezeiten (500ms) 
schließen das aus.

von Matthias H. (heili)


Lesenswert?

Also der Aufbau ist so...PortC Vorwiderstand LED...
Ich weiß echt net an was es liegt.
Wo kann ich schauen ob er wirklich mit 1 MHZ läuft...

Aber das flashen läuft ohne Probleme!

von Matthias H. (heili)


Angehängte Dateien:

Lesenswert?

Also hier hab ich nen unterschied gefunden....bei mir fehlt dieses 
Bauteil an Pin 9...
Kann das der Fehler sein?
Doch der Atmega8 kann doch selbst intern den Takt erzeugen...

Soll ich doch mal Port D verwenden, denn Port C hat bei dem Atmega8 ne 
Sonderrolle wie ich grad gelesen hab!

von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

In Bascom kenne ich mich recht wenig aus. In c würde das so aussehen:
1
#include <avr/io.h>
2
#define F_CPU 1000000UL
3
#include <util/delay.h>
4
5
int main()
6
{
7
    DDRC = 0x07;
8
    uint8_t i = 1;
9
    for(;;)
10
    {
11
        PORTC = i;
12
        i << 1;
13
        if(i == 8)
14
            i = 1;
15
        _delay_ms(1000);
16
    }   
17
}

Im Anhang ist auch ein HexFile. Das kannst du mal Testen.

PS: Ich hoffe ich hab jetzt kein Fehler zusammengehackt.

Matthias H. schrieb:
> Also hier hab ich nen unterschied gefunden....bei mir fehlt dieses
> Bauteil an Pin 9...
> Kann das der Fehler sein?
> Doch der Atmega8 kann doch selbst intern den Takt erzeugen...

Das stimmt, das Bauteil kannst du weglassen. Ist ein Quarzoszillator.

> Soll ich doch mal Port D verwenden, denn Port C hat bei dem Atmega8 ne
> Sonderrolle wie ich grad gelesen hab

Nein, das war mein Fehler. Am SPI/ISP gibt es manche Regelungen, genauso 
wie am JTAG.

von Matthias H. (heili)


Lesenswert?

Selbes Problem...
Ich warte jetzt mal bis mein neues Klembrett kommt und teste es dann 
nochmal!
Danke, für die Hilfe.
Meld mich dann wieder

von Karl H. (kbuchegg)


Lesenswert?

Matthias H. schrieb:
> Also hier hab ich nen unterschied gefunden....bei mir fehlt dieses
> Bauteil an Pin 9...
> Kann das der Fehler sein?

Nein. Den kannst du weglassen.

Das heißt aber auch, das hier ist NICHT deine Schaltung. Richtig?

Hast du AVcc beschaltet?

von Matthias H. (heili)


Lesenswert?

Ja ich habe eine andere Schaltung, da war die Rede davon das man ihn 
nicht braucht weil der Atmega8 den Takt intern erzeugt!

von Thomas Kiss (Gast)


Lesenswert?

Schaue kurz mal bei halvar nach..

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/hallo_welt_beispiel/

habe auch so begonnen..erstmal mit einem LED..Step by Step...

von Sam .. (sam1994)


Lesenswert?

Hmm... bekommt die Schaltung genügend Strom? Probier das mal an einem 
Labornetzteil. Ich hab schon komische Effekte erlebt, wenn die Schaltung 
zu wenig Strom bekam. Seitdem hängt alles was ein paar LEDs hat an einen 
Netzteil/Batterie.

von visitor (Gast)


Lesenswert?

Hallo Matthias,

ist der Controller vielleicht ständig im reset?
Miss doch mal die Spannung am Reset-Pin.
Oder zieh mal den ISP Stecker ab und versorge deine
Schaltung über en Netzteil/Batterie.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.