Import-Script
16.03.2003, 11:19
hallo, <BR> <BR>ich sitze jetzt schon seit gut 2 wochen an einem problem und komme einfach nicht weiter... <BR> <BR>vielleicht kurz das was ich machen will... <BR>ich habe mir von batronix das experimentierboard II geholt dazu 89c51rc und das ganz laeuft auf 24mhz. <BR> <BR>im grunde moechte ich nur per midi daten empfangen mehr nicht. das midiinterface ist das uebliche cny17-2 optokoppler und ein 220 ohm und 2,2k widerstand. da bin ich mir auch sicher das das geht da ich es 100% kopiert habe ;) <BR> <BR>das problem was ich nun habe ist das der serielle irq fuer die daten ausgeloest wird aber im sbuf nur muell drin steht... <BR> <BR> <BR>der reloadwert (timer 1 modus 2) errechnet sich ja fuer 24 mhz/31250 durch: <BR> <BR> <BR>256-( (2*24000000)/(31250*384) == 256 -( 48000000 / 12000000 ) == 252 -> $fc <BR> <BR>das ist meine timer initialisierung: <BR> <BR> MOV TL1,#fch ;24mhz / 31250 baud <BR> MOV TH1,#fch <BR> <BR> MOV IP,#10h ;serial to high priority <BR> MOV SCON,#50h ;reception enable mode 1 8 bit <BR> MOV PCON,#80h ;double baudrate <BR> MOV TMOD,#20h ;timer 1 mode 2 (autoreload) <BR> MOV TCON,#40h ;start timer 1 <BR> SETB ES ;enable serial port irq <BR> SETB EA ;enable all irq <BR> <BR> CLR TI ;clr transmit irq flag <BR> CLR RI ;clr receive irq flag <BR> <BR> <BR>so klappt es nicht... <BR> <BR>ich habe mehrere kleine geraete die genau das tun was ich moechte mit einem verwanten proz. somit habe ich die eproms ausgelesen und den code verglichen bis auf die timerwerte(weil die geraete alle auf 12mhz laufen) war alles gleich. <BR> <BR>ich habe mir auch durch die seite <BR><a href="http://wwwiti.cs.uni-magdeburg.de/~buchmann/privat/generator.htm#start_page" target=_top>http://wwwiti.cs.uni-magdeburg.de/~buchmann/privat/generator.htm#start_page</a> <BR>die werte errechnen lassen klappt alles nicht. selbst das microcontroller kochbuch mcs51 habe ich gelesen... nichts half. <BR> <BR>nun bin ich heute morgen auf die idee gekommen weil ich langsam mit meinem latein am ende war den quarz und die kondensatoren zu tauschen. vorher war ein 24 mhz quarz und zwei 33pf kondensatoren drin den habe ich ersetzt durch 12 mhz 22pf... <BR> <BR>natuerlich habe ich die timer entsprechend angepasst <BR> <BR>256-( (2*12000000)/(31250*384) == 256 -( 24000000 / 12000000 ) == 254 -> $fe <BR> <BR> MOV TL1,#feh ;12mhz / 31250 baud <BR> MOV TH1,#feh <BR> /../ <BR> <BR><b>und siehe da ... es geht !!!</b> somit ist das midiinterface korrekt...die timer ansteuerung eigentlich auch...also liegt es am experimentierboard ? <BR> <BR>es stellt sich die frage fuer mich... wie bekommen ich das bei 24 mhz zu laufen ? <BR>der prozessor ist eigentlich fuer 24 mhz ausgelegt. ich verstehe nicht ganz wieso das bei 24 mhz nicht laeuft. <BR> <BR>hat vielleicht einer eine idee was der grund hierfuer sein kann ? fuer jeden tip waere ich dankbar ;) <BR> <BR>gruss olaf