PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Routine mit Tabelle



Import-Script
03.11.2002, 18:42
Wie funktioniert Tabellenvergleich ?? Ich habe es so probiert aber leider ohne Erfolg.MC st&uuml;rzt ständig ab !! <BR>Gemessene ADC Wert &#40; zB. C8h-CDh&#41; muss mit der Tabelle &#40;Vergleich_tab&#41; verglichen werden.Daraus kann man die entsprechende Position f&uuml;r DPTR &#40;Celsiuswert Tabelle&#41; ermitteln. <BR>Ziel ist Umwandlung ADC Wert -&#62; so viel Celsius !! <BR>Wie kann man so was eleganter machen ??Macht man das &uuml;berhaupt so oder wie?? <BR> <BR>GRUSS <BR>ARNI <BR> <BR> <BR>WANDELN: <BR>MOV A,ADCDATEN ;AD WANDLER WERT IN ACCU <BR>MOV R1,A ;AD WERT IN R1 SPEICHERN <BR>MOV DPTR,#VERGLEICH_TAB ;POINTER AUF TABELLE <BR> <BR>VERGLEICHEN: <BR>CLR A <BR>MOVC A,@A&#43;DPTR ;TABELLENWERT LESEN <BR>CJNE A,R1,INCRDPTR ;VERGLEICHE AD WERT MIT TAB. <BR>CALL CELS_WERT <BR> <BR>INCRDPTR: <BR>INC DPTR <BR>INC R0 <BR>JMP VERGLEICHEN ;R1 MIT ACCU VERGLEICHEN <BR> <BR>CELS_WERT: <BR>MOV DPTR,#CELSIUS_TAB ;POINTER AUF CEL.TABELLE <BR> <BR>CELS_WERT2: <BR>IF R0&#62;#0 THEN <BR>DEC R0 <BR>INC DPTR <BR>CALL CELS_WERT2 <BR>END IF <BR> <BR>CLR A <BR>MOVC A,@A&#43;DPTR ;CELSIUS WERT AUS TABELLE IN ACCU <BR> <BR>&#39;WEITER MIT AUSGABE ROUTINE <BR> <BR> <BR>VERGLEICH_TAB: <BR>DB:#c8h,#c9h,#cah,#cbh,#cdh,#cch,#cdh <BR> <BR>CELSIUS_TAB: <BR>DB:#20,#21,#21,#22,#23,#24,#24 <BR> <BR> <BR>

Import-Script
03.11.2002, 22:43
Also. Soll das hier schon ein fertiges Programm sein? <BR>Wenn ja: <BR>- Strukturier das alles mal! Kein Kommentar, kein gar nix! Böses Foul #1. <BR> <BR>- Unterprogramme mit &#39;ret&#39; beenden <BR> <BR>- Endlosschleife fehlt <BR> <BR>- nimm die &#39;#&#39;-Zeichen in deiner Tabelle mal weg und ob der &#39;:&#39; nach &#39;DB&#39; stimmt glaub ich auch net. Mit welchem Programm codest du denn? <BR> <BR>- Geht die Mischung aus Assembler und Basic? &#40;If x&#62;y then... usw&#41; Kommt irgendwie ne Fehlermeldung? <BR> <BR>Mach die Hausaufgaben, dann komm nochmal. <BR> <BR>n8

Import-Script
04.11.2002, 00:05
hi <BR> <BR>das w&uuml;rde ich anders machen denn in deinem fall kannst du dir die vergleichstabelle sparen und nur mit der celsius_tab arbeiten das ist ganz einfach ich w&uuml;rde das in etwa so machen: <BR> <BR>wandle: <BR>mov dptr,#celsius_tab <BR>mov a,adcdaten <BR>movc a,@a&#43;dptr <BR>ret <BR> <BR>celsius_tab: <BR>db:20,21,23,24 u.s.w <BR> <BR>das wars eigendlich schon <BR>in der celsius_tab stehen dann f&uuml;r die temperaturen f&uuml;r die 256 werte des adc drin <BR>gibt der adc z.b. 0 zur&uuml;ck steht nach dem funktionsaufruf die 20 im accu ist es die 3 wird die 24 zur&uuml;ckgegeben usw. <BR> <BR>tschau MACE <BR>

Import-Script
04.11.2002, 09:15
@Daniel -&#62; Danke !! Mein Fehler - Ich habe das mit &#39;:&#39; und # total vermischt.Das wäre einfach ein Teil von eine Unterroutine .Ich programmiere <BR>&#40; probiere &#41; mit Prog Studio.Mit IF usw. habe ich bis jetzt kein Problem!! <BR> <BR>@Mace -&#62; Danke f&uuml;r M&uuml;he !! Genau das was ich brauche !! <BR> <BR>