www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik LED_Laufschrift mit Mega 32 und MAX 7219

Autor: Sebbel L. (langer77)
Datum: 19.03.2008 11:06

Moin moin,

so ich fange hier mal wieder ein Thema an, das glaube ich schon 1000 Mal
besprochen wurde, nur habe ich für mein problem noch nicht wirklich was
passendes gefunden!

Ich habe ein ATmega 32 und 3 MAX7219 die ich kaskadiert habe, möchte
damit drei Matrixen a 8x8 ansteuern, Schaltung ist klar, Matrix sowieso,
mein Problem ich muss das ganze in C schreiben habe bisher aber nur
Assemblercodes gefunden mit dennen ich nicht wirklich was anfangen kann,
hat hier irgendjemand sowas in C schon geschrieben und kann mir dabei
ein wenig weiter helfen, bin um jede ernstgemeinte Antwort dankbar!!!

s.
Autor: Udo (Gast)
Datum: 19.03.2008 14:17

Hallo Sebbel,

na, dann fang doch mal hiermit an:

#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>

void transmit(unsigned char, char);

void Load_Low()
{  
  PORTB &= ~(1 << PB4);
}

void Load_High()
{
  PORTB |= (1 << PB4);
}


void SPI_MasterInit(void) {

    DDRB = (1<<PB4)|(1<<PB5)|(1<<PB7);      // set PB4(SS), PB5 (MOSI) and PB7 (SCK) output, all others input

    SPCR = (1<<SPE)|(1<<MSTR);           // enable SPI, Master, set clock rate fck/4  
  
    PORTB |= (1 << PB7)|(1 << PB4);
}

void transmit(unsigned char addr, char data) {
  
  SPDR = addr;                      // Start transmission
  while(!(SPSR & (1<<SPIF)));           // Wait for transmission complete
  
  asm volatile("nop");
 
  SPDR = data;                      // Start transmission
  while(!(SPSR & (1<<SPIF)));            // Wait for transmission complete
}

void test_Init(void)
{
  Load_Low();
  for (int i = 0; i < 3; i++)
  {
  transmit(0x0C,0x01);            // normal mode  transmit(0x0C,0x01);
  }
  Load_High();

int main()
{
  
    SPI_MasterInit();
    _delay_us(10);
    test_Init();
  
    tu was....

      while (1) { 

     _delay_ms(10);

      }

   return 0;

}

Schaltung:
MOSI an DIN vom ersten 7219
CLK  an CLK vom ersten 7219
PB4 (#SS) an LOAD vom ersten 7219

Gruß
Udo
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 14:52

erstmal vielen Dank Udo,

hab beim linken aber einige Fehler:

Build started 19.3.2008 at 14:50:44
avr-gcc.exe  -mmcu=atmega32 -Wall -gdwarf-2 -Os -std=gnu99
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP
-MT LED_Laufschrift.o -MF dep/LED_Laufschrift.o.d  -c
../LED_Laufschrift.c
In file included from ../LED_Laufschrift.c:12:
c:/winavr-20071221/bin/../avr/include/util/delay.h:85:3: warning:
#warning "F_CPU not defined for <util/delay.h>"
../LED_Laufschrift.c: In function 'test_Init':
../LED_Laufschrift.c:58: warning: 'main' is normally a non-static
function
../LED_Laufschrift.c: In function 'main':
../LED_Laufschrift.c:64: error: 'tu' undeclared (first use in this
function)
../LED_Laufschrift.c:64: error: (Each undeclared identifier is reported
only once
../LED_Laufschrift.c:64: error: for each function it appears in.)
../LED_Laufschrift.c:64: error: expected ';' before 'was'
../LED_Laufschrift.c: In function 'test_Init':
../LED_Laufschrift.c:74: error: expected declaration or statement at end
of input
make: *** [LED_Laufschrift.o] Error 1
Build failed with 5 errors and 2 warnings...
Autor: Udo (Gast)
Datum: 19.03.2008 18:19

Hallo Sebastian,

Der erste Fehler kommt daher das du deine F_CPU nicht definiert hast:
#define F_CPU 'deine Quarzfrequenz'

naja, " tu was " ist nicht unbedingt ein gültiger Befehl in C  :)
War mehr als Platzhalter für dein restliches Programm gedacht....
kannst du ausklammern: //tu was....

Gruß
Udo
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 19:01

hehe, das hab ich mir auch gedacht, aber merci mal für den anfang!!!
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 19:25

jetzt nochwas dummes, wo nem ich meinen clk ab, direkt am quarz den ich
vor dem mega32 hab  oder gibts da noch nen ausgang den ich
durchschleifen muss???
Autor: crazy horse (Gast)
Datum: 19.03.2008 19:29

den SCL-Pin der SPI-Schnittstelle
Autor: Udo (Gast)
Datum: 19.03.2008 19:30

ups, sorry, das sollte natürlich SCLK nach CLK am 7219 heißen.
Also SCLK von der SPI-Schnittstelle des 32.
Autor: Udo (Gast)
Datum: 19.03.2008 19:33

hehe, crazy horse war schneller....
Autor: crazy horse (Gast)
Datum: 19.03.2008 19:34

sagt meine Frau auch immer :-)
Autor: Udo (Gast)
Datum: 19.03.2008 19:35

grübel.... ist das jetzt gut oder schlecht? ;))
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 19:38

sauber jungs, bin begeistert wie schnell das geht, merci

s.
Autor: Udo (Gast)
Datum: 19.03.2008 19:43

was meinst du jetzt Sebbel?
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 19:49

ja nix, finds echt saugut das hier geantwortet wird und keine dummen
sprüche kommen wie man es besser machen könnte oder sonst was, war
positiv gemeint.
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 19:53

hab aber immernoch dumme fehlermeldungen, weis da fehlt nochwas im
programm aber das hängt damit glaub nicht zusammen


Build started 19.3.2008 at 19:50:37
In file included from ../LED_Laufschrift.c:12:
c:/winavr-20071221/bin/../avr/include/util/delay.h:85:3: warning:
#warning "F_CPU not defined for <util/delay.h>"
../LED_Laufschrift.c:14:1: warning: "F_CPU" redefined
c:/winavr-20071221/bin/../avr/include/util/delay.h:86:1: warning: this
is the location of the previous definition
../LED_Laufschrift.c: In function 'test_Init':
../LED_Laufschrift.c:58: warning: 'main' is normally a non-static
function
../LED_Laufschrift.c:74: error: expected declaration or statement at end
of input
make: *** [LED_Laufschrift.o] Error 1
Build failed with 1 errors and 4 warnings...



hab die cpu frequenz laut avr-gcc tutorial so definiert  #define F_CPU
[10000000], sollte ja stimmen da ich die taktfrequenz in hertz angeben
muss sprich 10mhz= 10000000
Autor: Udo (Gast)
Datum: 19.03.2008 19:58

arbeitest du mit dem AVR-Studio?
Autor: Udo (Gast)
Datum: 19.03.2008 20:07

Da fehlt ein }


void test_Init(void)
{
  Load_Low();
  for (int i = 0; i < 3; i++)
  {
  transmit(0x0C,0x01);            // normal mode  transmit(0x0C,0x01);
  }
  Load_High();


} // das hier
Autor: Udo (Gast)
Datum: 19.03.2008 20:11

und #define F_CPU  muß

so aussehen:  #define F_CPU 10000000

ohne die [] Klammern
Autor: Sebbel L. (langer77)
Datum: 19.03.2008 20:27

jap ich arbeite mit dem avr studio, ok werd ich morgen früh gleich
ausprobieren und euch berichten,

s.
Autor: Sebbel L. (langer77)
Datum: 24.03.2008 13:35

mahlzeit maenners,

melde mich wieder zurück war wegen einer notop meiner freundin, die
ihren blinddarm rausbekam etwas verhindert!!!

quellcode ist jetzt fehlerfrei, danke udo
Autor: Sebbel L. (langer77)
Datum: 24.03.2008 13:59

...jetzt habe ich folgendes problem, das ich mein programm nicht in den
microcontroller laden kann, benutze den avrisp mkII programmer, bei dem
beide grünen ledsleuchten, also sollte da ja alles stimmen meine
frequenz zum isp liegt bei 1000khz, sollte also auch passen, was kan man
noch falsch machen, benutze das avr studio, hab mein hexfile erzeugt und
auch richtig ausgewählt,hmmm...hat irgendjeamnd ne antwort??
achso ich benutze einen ATmega32 16PU, hier sollte ich doch dann im
device einfach den ATmega32 auswählen, oder??
Autor: Sebbel L. (langer77)
Datum: 24.03.2008 15:02
Dateianhang: Fehlermeldung_AVR_23.03.08.JPG (50,7 KB, 122 Downloads)
preview image for Fehlermeldung_AVR_23.03.08.JPG

so ich hab jetzt mal die fehlermeldung angehängt, vielelicht bringst ja
was!!

soden

s.
Autor: Sebbel L. (langer77)
Datum: 24.03.2008 15:27
Dateianhang: isp.JPG (16,3 KB, 66 Downloads)
preview image for isp.JPG

den isp, hab ich mit dem atmega folgendermassen verbunden, wie oben in
der tollen zeichnung, habe beim reset gegen 5V einen 10k ohm widerstand
drin, sollte doch auch passen, oder seh ich das alles falsch???
Autor: Udo (Gast)
Datum: 25.03.2008 09:06

Hallo Sebastian,

bei Atmel gibt es folgende Info:

AVR ISP mkII fix:
AVRISP mkII programmers manufactured from 20071012 to 20080130 has a
missing parameter in the firmware. This causes the AVRISP mkII to not be
able to communicate with the target AVR. The AVRISP mkII can be fixed by
upgrading the firmware For procedure details see AVRISP mkII fix note.

Download upgrade package at
http://www.atmel.no/beta_ware/as4/AVRISPmkIIUpgrade.exe. ...

versuch es mal damit.

Gruß
Udo
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 11:15

moin udo,

habe die exe installiert gleiches problem, meinte dann auch das die exe
die ich von dir hab die 1.06 ist und ich die neuste installieren sollte
die 1.09, hab ich alles getan nichts verändert, das eeprom lässt sich
laden übers avr aber das flash nicht, mach ich da wat falsch???
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:12
Dateianhang: 1.JPG (56,1 KB, 49 Downloads)
preview image for 1.JPG

hier wieder fehlermeldungen,hab zwei fotos gemacht, das zweite ist im
nächsten post, hab probleme mit dem flash, mach ich da irgendwelche
falschen einstellungen oder was ist das
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:14
Dateianhang: 2.JPG (26 KB, 33 Downloads)
preview image for 2.JPG

fehlermeldung
Autor: Udo (Gast)
Datum: 25.03.2008 12:21

das erste Bild sieht doch schon gut aus, der MKII wird scheinbar
erkannt.
Ins EEprom kannst du nichts brennen, weil du nichts hast was du ins
EEprom brennen kannst. Dein Code kommt komplett ins Flash.
Zeig mal das Bild der Ordner "Main" und "Fuses"
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:26
Dateianhang: 3.JPG (39,7 KB, 43 Downloads)
preview image for 3.JPG

nochwas ich benutze eine ATmega32 16PU finde diesen baustein aber nicht
unter AVR studio, bringt da auch ne warnung, kann mein ganzes problem
damit zusammenhänegn???
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:28
Dateianhang: 4.JPG (46,2 KB, 37 Downloads)
preview image for 4.JPG

main ist oben, fuse in dem post
Autor: Udo (Gast)
Datum: 25.03.2008 12:34

also wenn ATmega32 auf der CPU steht ist auch eine drin :))
16 ist die max.Takfrequenz in MHz und P steht DIP-Gehäuse und U für
unlead, also bleifrei.
Wenn AVRStudio schon Fehlermeldungen bringt, würd ich erst mal da
schauen, gegebenenfalls gibt es da ein Update: www.atmel.com
Autor: Udo (Gast)
Datum: 25.03.2008 12:37

also. die ganzen Bilder bringen nichts, da die CPU nicht richtig vom
AVRStudio erkannt wird. Würde da jetzt auch nichts umstellen an den
Fuses ect.
Erst mal schauen was mit dem AVRStudio ist.
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:38

...hmmm, was ich halt komisch finde ist das er im dem unteren fenster
vom main dann schreibt, signatur blablabla OK, und oben dann wieder
schreibt WARNING signature dos not match selected device??
Autor: Udo (Gast)
Datum: 25.03.2008 12:40

dein AVRStudio spinnt.... schau, dass du das erstmal richtig zum laufen
bekommst
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 12:42

allet klar, ich werds mal neuinstallieren, mach des avr studio drauf und
des gcc bin mal gespannt was dann passiert ;),...meld mich dann wieder
Autor: Udo (Gast)
Datum: 25.03.2008 12:46

erst das GCC installieren und dann erst, aber die neueste Version von
Atmel + Servicepacks, AVRStudio installieren
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 13:21

also ich hab jetzt vorgehabt die gcc zu installieren danch das avr
studio, was soll ich von atmel installieren?
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 13:21

sprich zuerst winavr, weil da mein gcc drin it und danach das avr studio
Autor: Udo (Gast)
Datum: 25.03.2008 13:24

genau die Reihenfolge. Soviel ich weiß gibt es von Atmel Servicepacks zu
dem AVRStudio.
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 13:56

oooh man jetzt dreh ich durch, hab zuerst das win avr, danach das avr
studio installiert, und hab wieder den gleichen mist,
Autor: Udo (Gast)
Datum: 25.03.2008 15:03

du solltest dir hier:
http://www.atmel.com/dyn/products/tools_card.asp?f...

erst das runterladen und installieren:
AVR Studio 4.13 (build 528) (73 MB, updated 03/07)
dann dieses runterladen und installieren:
AVR Studio 4.13 SP2 (build 571) (45 MB, updated 12/07)

dann eventuell noch mal den USB-Treiber für den MKII und die Updates für
das MKII.

Wie deinstallierst du? hoffentlich über Start/Einstellungen/Software
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 15:08

logisch über software,

ich hab runtergeladen, das:

1. AVR Studio 4.13 (build 528
2. AVR Studio 4.13 SP1 (build 557)
3. AVR Studio 4.13 SP2 (build 571)

genau in der reihenfolge habe ich auch installiert, zuvor das winavr.
Autor: Udo (Gast)
Datum: 25.03.2008 15:13

ich hab hier leider kein AVRStudio, kann ich erst heute abend
nachschauen was alles kontrolliert (eingestellt) werden muß im
AVRSTudio.
Autor: Thomas W. (thomasw)
Datum: 25.03.2008 15:15

Moin!

Zu den Programmierproblemen:
Kann es sein, dass du die Software für einen anderen Prozessor als den
mega32 kompilierst? Das muss vorher noch an anderer Stelle eingestellt
werden. Habe gerade kein AVR-Studio zur Hand um den Pfad zu nennen. War
aber irgendwas mit "Konfiguration" (?).

Welcher Prozessor momentan ausgewählt ist kannst du auch im Makefile
angucken.

MfG
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 15:21

hmm,
also ich hab da schon den atmega32 eingestellt unter dem avr studio,
aber das blöde ist ja wie oben schon beschrieben, das er im unteren teil
des fensters meint signatur ist ok und oben sagt er mir was vonwegen
warning, signature dos not match selected device, man man kann es sein
das mein avrisp mkII einen schuss hat, das ist doch echt zum haare
verleiren, macht mich echt fertig, zumal ich ja gerade erst angefnagen
hab mit dem ganzen scheiss und dann am anfang gleich so probleme

s.
Autor: Thomas W. (thomasw)
Datum: 25.03.2008 15:29

Die Fehlermeldung würde ja auf meinen Hinweis deuten. Du kannst die
Signatur des angeschlossenen mega auslesen. Ist ja auch ok. Wenn du nun
aber versuchen willst zu Flashen, sagt er dir, dass die Software nicht
für den AVR passt, dessen Signatur du ausgelesen hast.

Die Auswahl des Prozessors in dem Programmiermenü, von dem du oben die
Screenshots gemacht hast, ist was anderes als die Auswahl des Prozessors
für den compiler.

Guck dir mal das make-File an, das irgendwo in dem Projektordner sein
muss. Da steht drin für welchen AVR der Code kompiliert wird.
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 15:29

egal was ich ändern und übertragen will auch wenn es nur die fusebits
sind, bringt immer die gleiche fehlermeldung, wie oben schon eingefügt,
der isp stecker ist auch so beschaltet wie überall beschrieben, habe
oben auch ein bild eingefügt, habe eine 10k ohm gegen 5V am reset.
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 15:32

ok, danke wieder was gelernt, habe hier mal das makefile:


###############################################################################
# Makefile for the project LED_Laufschrift
###############################################################################

## General Flags
PROJECT = LED_Laufschrift
MCU = atmega32
TARGET = LED_Laufschrift.elf
CC = avr-gcc.exe

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=10000000UL -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=  -Wl,-Map=LED_Laufschrift.map


## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom

HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings


## Objects that must be built in order to link
OBJECTS = LED_Laufschrift.o

## Objects explicitly added by the user
LINKONLYOBJECTS =

## Build
all: $(TARGET) LED_Laufschrift.hex LED_Laufschrift.eep
LED_Laufschrift.lss size

## Compile
LED_Laufschrift.o: ../LED_Laufschrift.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

##Link
$(TARGET): $(OBJECTS)
   $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o
$(TARGET)

%.hex: $(TARGET)
  avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@

%.eep: $(TARGET)
  -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0

%.lss: $(TARGET)
  avr-objdump -h -S $< > $@

size: ${TARGET}
  @echo
  @avr-size -C --mcu=${MCU} ${TARGET}

## Clean target
.PHONY: clean
clean:
  -rm -rf $(OBJECTS) LED_Laufschrift.elf dep/* LED_Laufschrift.hex
LED_Laufschrift.eep LED_Laufschrift.lss LED_Laufschrift.map


## Other dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)


wie gesagt benutze eine atmega32 16PU also sollte es ja passen wie es
oben beschrieben ist unter MCU =atmega32
Autor: Thomas W. (thomasw)
Datum: 25.03.2008 15:47

Hmm, daran kanns also nicht liegen.

Achso, ich sehe gerade, dass die Signatur doch nicht richtig gelesen
wurde. Kommen ja nur Nullen raus. Dann würde ich mein Augenmerk nochmal
auf die Verkabelung richten. Hast du mal durchgemessen, dass auch
Kontakt vom Programmierstecker zum zugehörigen AVR-Pin besteht und das
keine Kurzschlüsse zwischen den Leitungen besteht?

Ich habe selbst noch nicht viel mit dem SPI-Bus gemacht. Wie sieht es
denn mit der Beeinflussung der MAX 7219 auf den Programmieradapter aus?
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 15:49

durchmessen werd ich das alles jetzt auch nochmal, beeinflussen sollte
sich da nix, da es egal ist ob die max7219 gesteckt sind oder nicht!!!
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 16:03

also hab es durchgemessen und des passt soweit alles, ich kann ja
eigentlich fast alles machen ausser des flash programmieren, fusebits
setzen,
Autor: Thomas W. (thomasw)
Datum: 25.03.2008 16:07

In deinem Posting von "25.03.2008 12:28" kann man die Fuses ja sehen.
Und da hat er auch nur Nullen gelesen. Oder liest er die manchmal auch
richtig?
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 16:08

hab jetz auch mal nen andere prozessor gesteckt, also nen anderen mega32
das gleiche problem
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 16:13

des weis ich ja nicht wirklich,
wollte die fusebits so setzen das er meine externe quartz erkennt, aber
des macht er auch nicht, ich find des alles sehr komisch weil irgendeine
verbindung hab ich ja zu dem prozessor
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 17:06

...so hab jetzt auch nochmal die avr checkliste durch, alles wie es
beschrieben ist getan, bzw. war schon vorhanden.

nochmal zu meinem isp stecker:
pin1 = MISO
pin2 = +5V
pin3 = SCK
pin4 = MOSI
pin5 = RESET
pin6 = GND

das sehe ich doch richtig so,.....habe zwar einen 10polige gegenstelle
auf meiner platine verauen müssen aber da geht das kabel ja auch rein
und ja ich habe den pin 3 als meine 1 genommen, da ja 10polig, sprich
alles verschoben!
Autor: Thomas W. (thomasw)
Datum: 25.03.2008 17:11

Moment. Verstehe ich das richtig, dass du den 6poligen Stecker in die
10polige Buchse gesteckt hast? Oder hast du dir ein Adapterkabel gebaut?

Die Gegenüberstellung der 10poligen und 6poligen Steckerbelegung findest
du hier:
AVR In System Programmer
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 17:19
Dateianhang: 150.jpg (5,9 KB, 10 Downloads)
preview image for 150.jpg

nein nein, da die 6 polige buchse nicht so leicht zu finden ist(die die
ich auf meiner platine verbaut habe), habe ich eine 10 polige genommen,
bei der ich die ersten zwei und die lezten zwei pins abgeschnitten habe,
sprich 1und2, 9und10, was ich sagen wollte ist das ich auf dem
ehemaligen pin 3 an der buchse jetzt mein pin 1 habe, papelapap, des
passt schon so, hab einfach ne 10polige buchse genommen den 6poligen
stecker da rein gesteckt und entsprechend der pinbelegung für den
6poligen abgegriffen wie im bild das ich eingefügt habe!!!!
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 17:35
Dateianhang: 1.JPG (11,5 KB, 29 Downloads)
preview image for 1.JPG

so männers, habe gegoogelt und durch glück hierdrauf gestossen aber nur
weil ich vorher die fehlermeldung hatte,(oben)

dann bin ich auf diesen Kommetar gestossen und es hat geholfen, man man
war das ne geburt!!!

----------------------------------------------------
Das Problem könnte an der Chip Revision liegen.
Im ct-Bot Forum hatten wir dasselbe Problem.

Problem ist wohl, dass sich die Fuses bei fabrikfrischen Chip mit 06xxx
Revision nicht korrekt lesen lassen.
Probier mal:
* ISP Frequenz so niedrig wie möglich einstellen (max. 250kHz).
* Danach einen Chip Erase ausführen
* Dann kann man die Fuses setzen und die ISP Frequenz wieder hochsetzen
und alles ist OK.
----------------------------------------------------

so jetzt weiter im programm, habe jetzt zumindest feststellen können das
alles was ich vorher getan hatte richtig war,das baut doch auf ;)

gruss s.
Autor: Udo S. (udo)
Datum: 25.03.2008 18:19

Hallo Sebastian.

Glückwunsch...
Bin gerade rein und hab deinen Erfolg gesehen.
Das war natürlich ein blöder Fehler. :(

Gruß
Udo
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 18:44

fotos folgen morgen, vom ersten Funktionstest, man man war des ne
Geburt!!!
Autor: Udo S. (udo)
Datum: 25.03.2008 18:54

hast du denn schon im Programm weiter gemacht?
Autor: Sebbel L. (langer77)
Datum: 25.03.2008 18:56

nicht wirklich, da werd ich morgen dran basteln, habe mich die letzten
zwei tage mit dem fehler beschäftigt, an mir selbst gezweifelt aber
morgen geh ich das an, funktion der matrix hab ich aber, es leuchten mal
zumindest alle Leds ;),dann mal nen schönen abend noch, muss ins
krankenhaus,

s.
Autor: Sebbel L. (langer77)
Datum: 26.03.2008 12:58

moin moin,

hab da nochmal ne Frage am Rande, brauch ich am Ausgang meines
Mikrocontrollers und an den DIN Eingängen der MAX7219, Pullup, bzw.
Pulldownwiderstände???
Denke doch schon, bin mir aber nicht so sicher!

Gruss

s.
Autor: Udo (Gast)
Datum: 26.03.2008 14:02

du solltest am ersten Modul einen 10k PullUp an Din anschalten und an
jeden Dout einen. An SCLK und LOAD kommt am letzen Modul je ein 10K als
PullUp.

Gruß
Udo
Autor: Udo (Gast)
Datum: 26.03.2008 14:05

Nachtrag: wichtig! an jedem 7219 muß direkt am
Versorgungsspannungsanschluss ein 100nF und ein 10µF parallel, gegen
Masse geschaltet werden.
Autor: Udo (Gast)
Datum: 26.03.2008 14:11

Autor: Sebbel L. (langer77)
Datum: 26.03.2008 14:34

moin udo,
sieht sauber aus deine anzeige, respekt, das mit den kondensatoren hatte
ich schon, aber danke,
hab an den MAX7219 auch noch 22k widerstände von 5V auf Pin 18,
werd jetzt aber mal die pullups noch einlöten ;)

s.


achja Bilder wollt ich ja auch noch posten, kommt demnächst
Autor: Sebbel L. (langer77)
Datum: 26.03.2008 15:26

so da bin ich wieder, bist dir da ganz sicher mit den PULLUP, sprich
gegen +5V Widerständen, hab jetzt wieder ganz komische probleme!!!
Autor: Udo S. (udo)
Datum: 26.03.2008 18:11

Hallo Sebastian,

sehr schön aufgebaut deine Schaltung. Sieht gut aus.

Die Kondensatoren sollten nur so nah wie möglich an die 7219 ran. Das
ist sehr wichtig.
Wir gesagt, die Pullups genau so wie ich es oben beschrieben habe.
Allerdings könnte es in deinem Fall kontraproduktiv sein, da wegen dem
Aufbau auf Lochrasterkarte und der damit bedingten Leiterbahnführung die
Spannungsversorgung und Datenleitungen mit der Multiplexfrequenz des
7219 verseucht sind. Wenn du ein Scope hast, das mal messen.
Gegebenenfalls direkt am IC auf der Leiterbahnseite nochmal mit
zusätzlichen Kondensatoren die Spannungsversorgung abblocken.

Gruß
Udo

Nachtrag: achte beim einstellen von Bildern auf die Dateigröße. Evtl.
das png Format wählen, zumindest aber bei jpg komprimieren. Sonst gibt
es Ärger mit den Mod's
Autor: Sebbel L. (langer77)
Datum: 26.03.2008 18:40

....hehehe


alles klar werde drauf achten,(mit den Pics)
dann würd ich sagen sollte ich das Ding mal ätzen, funktionieren tut es
ja, hab mir schon gedacht das es nicht so toll ist auf lochraster
aufzubauen, aber zum ersten mal testen geht des ja;)

s.
Autor: Sebbel L. (langer77)
Datum: 26.03.2008 19:57

Wiedermal ne grundsätzliche Frage,


ich muss mir doch ein array anlegen in dem ich mein text speicher,
diesen text bzw dieses array muss ich dann irgendwie mit dem ascii-code
bzw generator verbinden, so dann hab ich das irgendwie, gott weis wie,
die andere sache ist ja das ich mir register anlegen muss die die werte
immer ein register weiterschieben, damit das ding dann auch läuft, oder
seh ich das jetzt mal grundsätzlich falsch???

gruss

s.
Autor: Udo S. (udo)
Datum: 26.03.2008 20:28

du wirst, wenn du Text anzeigen willst, erstmal eine Datei anlegen
müssen, wie z.B: Zeichensatz.h .In dieser Datei legst du dann die
hex-Daten für die einzelnen Zeichen ab, so wie in diesem Beispiel:

#ifndef h_zeichensatz
#define h_zeichensatz

unsigned char ch_32[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};  // Code for char Space 
unsigned char ch_33[8] = {0x00, 0x00, 0x00