PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Control Leuchtdioden defekt wg C Code ?



Chattychan
18.12.2006, 14:14
Hallo,

ich habe das RN-Control Board. Alles lief auch super, auch die
Leuchtdioden. Hab dann eine Sicherung des FlashROMs als
.bin datei gespeichert und versucht ein eigenes erstes C Pogramm
zu schreiben was einfach nur die Leuchtdioden ansteuern sollte.

Hier der Code:


#include <avr/io.h> // (1)

int main (void) { // (2)

DDRC = 0xff; // (3)
PORTC = 0x05; // (4)

while(1) { // (5a)
/* "leere" Schleife*/; // (5b)
} // (5c)

/* wird nie erreicht */
return 0; // (6)
}

Da ja die Leuchtdioden leuchten wenn PORTC eingeschaltet wird, hab ich
mir gedacht wenn das im BASCOM Beispiel Code so geht, dann auch
mit C. 0x05 ist ja 00001001. Demnach sollte von rechts das erste und vierte brennen. Hab auch verschiedene Werte getestet aber leider mit
einem nicht nachvollziehbaren Leuchtergebnis. Naja ich hab dann
einfach wieder die Sicherungsdatei ins FlashROM (hat vorher auch
schon öfter geklappt) geschrieben und siehe da es leuchten nur noch die
äusseren beiden Leuchtdioden jeweils Links und Rechts beim Lauflichttest.

Hab ich die 4 in der Mitte zerstört ? Was hab ich falsch gemacht ?

Vielen Dank im voraus.

EDIT:
Hab grade rausgefunden, dass es wohl daran liegt dass Fusebit H (JTAG)
auf einmal enabled ist. Aber wie kann das sein ? War doch vorher aus ?
Ohoh wie bieg ich denn das wieder grade ??

LG
Thomas

Pascal
18.12.2006, 14:27
Es handelt sich also um die Pins C2-5. Funktionieren die mit einem anderen Code oder haben die vorher schonmal funktioniert?
Denn das sind genau die Pins, die "spinnen", wenn das JTAG-Interface nicht deaktiviert ist. Schau da mal nach.

Chattychan
18.12.2006, 14:45
Hallo,

das merkwürdige ist ja das die vorher mal funktioniert haben.
Hab das RN-Control fertig gelötet und mit gesetzten Fuse & Lockbits
ausgeliefert bekommen und nur ein paarmal mit Bascom rumgespielt
read / write (Aber nix an den Fusebits)
Hab vor jedem write erase gemacht und das war kein Problem.
Ging alles. Aber als ich dann mit PonyProg und C (hexfiles) das
Programm übertragen habe waren die Fusebits anscheinend auf einmal anders.

So sehen meine Fusebits jetzt aus:

CHIP
Name MEGA32
Calbibration 0 C8

LOCKBITS
Lockbit 65 11:No restrictions for SPM or LPM accessing the boot loader section
Lockbit 43 11:No restrictions for SPM or LPM accessing the application section
Lockbit 21 11:No memory lock features enabled for parallel and serial programming

FUSEBITS
Fusebit C 1:BODLEVEL 2.7V
Fusebit B 1:BODEN disabled
Fusebit KLA987 101111:Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1111 SUT=10]

FUSEBITS HIGH
Fusebit I 1:OCDEN fuse unprogrammed
Fusebit H 0:JTAG enabled(portc.2-portc.5 not usable)
Fusebit Q 0:Serial programming enabled
Fusebit P 0:osc. options programmed
Fusebit G 0:Preserve EEPROM when chip erase
Fusebit FE 00:2048 words boot size
Fusebit D 0:Reset vector is boot loader reset

Traue mich gar nich was zu ändern da ich gelesen hab da kann man
was unbrauchbar machen mit.

LG
Thomas

zumgwadrad
18.12.2006, 15:31
Fusebit H 0:JTAG enabled(portc.2-portc.5 not usable)

Hi,
ich fummel an meinen Fusebits iegentlich immer mit Ponyprog rum!
Find ich sehr übersichtlich!
Eigentlich musst du nur dein FUSEBIT H auf 1 setzen und schon ist JTAG disabled! und dann sollten PINS 2-5 an c wieder gehen!

Hubert.G
18.12.2006, 15:31
Wenn du die Fusebits abfragst, dann nur das Bit H änderst, das für den JTAG zuständig ist, und dann das ganze wieder hineinladest kann nichts passieren.

Hubert

Pascal
18.12.2006, 15:32
Du hasts ja grad gepostet:


Fusebit H 0:JTAG enabled(portc.2-portc.5 not usable)

JTAG ist aktiviert, also funktionieren die angegeben Pins nicht wie gewünscht. Wenn du die Fusebits nicht ändern magst, kannst du das JTAG auch per Software ausschalten(im Datenblatt steht, wies geht).

Aber irgendwann is immer das erste mal und früher oder später musst du mal was an den fusebits ändern. Wenn man sich gut informiert hat und nichts überstürzt, passiert auch nix(ansonsten is der Verlust ja auch nicht so riesig...).

Chattychan
18.12.2006, 16:35
Hallo Leute,

danke für eure Antworten !
Hab Fusebit H jetzt einfach geändert => JTAG Disabled und siehe da es geht.

Aber an den anderen Fusebits spiel ich lieber nicht rum. Erstmal.

Allerdings frag ich mich, wie ich es geschafft habe ohne an den
Fusebits rumzufummeln diese zu verstellen ?!? *g*

@Hubert
Hab die Relaisschaltung mittlerweile fertig gelötet, hat zwar was gedauert aber hatte viel mit der Uni um die Ohren. Werd sobald wie möglich in dem Thread
von damals ein paar Fotos reinstellen, hätte das ohne deine Hilfe niemals
geschafft! Danke nochmals !!!!

LG
Thomas

Hubert.G
18.12.2006, 17:31
Hallo Thomas
Ich bin schon gespannt auf die Fotos.
Wenn du doch mal an den Fusebits rumspielen willst sieh dir vorher das mal an:
palmavr.sourceforge.net/cgi-bin/fc.cgi

LG Hubert