PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfäner braucht mal Hilfe ...



cblasi
22.08.2008, 10:05
Hallo,

also ich bin absoluter Anfänger was Atmel Microcontroller angeht, habe angefangen mit diesem geniale Tutorial:

AVR-Einstieg leicht gemacht

https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht

Bin jetzt beim Abschnitt angelagt, wo Ports als Output Ports konfiguriert werden. Ich dachte mir, cool mit einer LED geht es, probier mal 2 oder 3 LED als " Ampel" zu betreiben. So weit so gut, leider bekomme ich nicht mehr als 2 LED zu leuchten und zwar an den Ports :

PC0 und PC1

Code:

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000

Config Portc.0 = Output
Config Portc.1 = Output
Do
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet
Waitms 100
Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet
Waitms 100
Portc.1 =1
Waitms 100
Portc.1 = 0
Waitms 100
Loop

End

So, wenn ich jetzt die 3. LED anschliesse, egal was für ein Port zB. PC2-7 oder PA0-7 oder PB0-7 und ändere den Code, bekomme ich die LED nicht ans leuchten?!?!

Was mach ich Falsch ?!?!

Christiano

MeckPommER
22.08.2008, 10:24
Hallo,

tja, also das kann verschiedene Ursachen haben. Wenn etwas bei PortC nicht funktioniert, sollte man nachschauen, ob bei den Fuses evtl. JTAG aktiviert ist. Dieses JTAG sollte man dann abschalten, denn es belegt einige Pins vom PortC.

Wenn es an keinem Port geht, das mit der dritten LED ... vielleicht ist die LED kaputt? Klingt blöde, aber manchmal sind es ja die einfachsten Dinge, an die man nicht denkt ;-)
Vielleicht ist deine 3. LED von den Daten her so, das sie mit dem Vorwiderstand (den du hoffentlich benutzt) nur so schwach leuchtet, das du es nicht sehen kannst.
Vielleicht ist da auch ein Würm in deinem Programm? Poste es doch mal in der Version MIT der 3. LED.

Viel Glück bei der Fehlersuche :-)

Gruß MeckPommER

Vitis
22.08.2008, 10:27
beim port c kann dir der jtag dazwischen funken
sieh mal in die fuse-einstellungen ob der jtag disabled ist
bei neuem controller isser enabled.

dann haste noch lediglich portc.1 und c.0 verwendet,
dann tut sich nix an c.2 bis c.7 geschweige denn
auf port a oder b

mach mal einfach
config porta = output für ganzen port, nicht nur n pin
config portb = output
config portc = output

dann

porta=&Hff
waitms 100
porta=0
waitms 100

so wird der ganze port in einem rutsch ein-aus-geschaltet

cblasi
22.08.2008, 10:42
Hallo,

tja, also das kann verschiedene Ursachen haben. Wenn etwas bei PortC nicht funktioniert, sollte man nachschauen, ob bei den Fuses evtl. JTAG aktiviert ist. Dieses JTAG sollte man dann abschalten, denn es belegt einige Pins vom PortC.

Wenn es an keinem Port geht, das mit der dritten LED ... vielleicht ist die LED kaputt? Klingt blöde, aber manchmal sind es ja die einfachsten Dinge, an die man nicht denkt ;-)
Vielleicht ist deine 3. LED von den Daten her so, das sie mit dem Vorwiderstand (den du hoffentlich benutzt) nur so schwach leuchtet, das du es nicht sehen kannst.
Vielleicht ist da auch ein Würm in deinem Programm? Poste es doch mal in der Version MIT der 3. LED.

Viel Glück bei der Fehlersuche :-)

Gruß MeckPommER

Hallo MeckPommEr,

danke für die Antwort, LED geht, Widerstand ist bei allen gleich, habe auch die LED die gehen einfach an den anderen Ports angeschlossen, und den Code geändert -> aber sie leuchtet nicht :-(
Das mit JTAG muss ich überprüfen.


Danke,
Christiano

cblasi
22.08.2008, 10:46
beim port c kann dir der jtag dazwischen funken
sieh mal in die fuse-einstellungen ob der jtag disabled ist
bei neuem controller isser enabled.

dann haste noch lediglich portc.1 und c.0 verwendet,
dann tut sich nix an c.2 bis c.7 geschweige denn
auf port a oder b

mach mal einfach
config porta = output für ganzen port, nicht nur n pin
config portb = output
config portc = output

dann

porta=&Hff
waitms 100
porta=0
waitms 100

so wird der ganze port in einem rutsch ein-aus-geschaltet

Hallo Vitis,

habe natürlich den Code für die andren Ports geändert, glaube aber ich habe wohl das Problem mit dem JTAG,

probier es später noch mal aus den JTAG zu disablen, und melde mich.

Vielen Dank,
Christiano

cblasi
22.08.2008, 20:30
Hallo,

danke für Eure Hilfe, JTAG disabled und schon geht es!!

So, jetzt muss ich mal mehr über JTAG lesen :-)

Danke,
Christiano

MeckPommER
22.08.2008, 22:42
also für "normalsterbliche" ists nur wichtig zu wissen, wie man JTAG abschaltet ;-)

Vitis
23.08.2008, 10:58
hab gerade ne Leiterplatte mit jtag vor mir liegen ... ich wollt es
währ n ganz nomaler isp.
macht mehr probleme als es löst das ding