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ürzt ständig ab !! <BR>Gemessene ADC Wert ( zB. C8h-CDh) muss mit der Tabelle (Vergleich_tab) verglichen werden.Daraus kann man die entsprechende Position für DPTR (Celsiuswert Tabelle) ermitteln. <BR>Ziel ist Umwandlung ADC Wert -> so viel Celsius !! <BR>Wie kann man so was eleganter machen ??Macht man das ü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+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>#0 THEN <BR>DEC R0 <BR>INC DPTR <BR>CALL CELS_WERT2 <BR>END IF <BR> <BR>CLR A <BR>MOVC A,@A+DPTR ;CELSIUS WERT AUS TABELLE IN ACCU <BR> <BR>'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 'ret' beenden <BR> <BR>- Endlosschleife fehlt <BR> <BR>- nimm die '#'-Zeichen in deiner Tabelle mal weg und ob der ':' nach 'DB' stimmt glaub ich auch net. Mit welchem Programm codest du denn? <BR> <BR>- Geht die Mischung aus Assembler und Basic? (If x>y then... usw) 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ü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ürde das in etwa so machen: <BR> <BR>wandle: <BR>mov dptr,#celsius_tab <BR>mov a,adcdaten <BR>movc a,@a+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ür die temperaturen für die 256 werte des adc drin <BR>gibt der adc z.b. 0 zurück steht nach dem funktionsaufruf die 20 im accu ist es die 3 wird die 24 zurückgegeben usw. <BR> <BR>tschau MACE <BR>
Import-Script
04.11.2002, 09:15
@Daniel -> Danke !! Mein Fehler - Ich habe das mit ':' und # total vermischt.Das wäre einfach ein Teil von eine Unterroutine .Ich programmiere <BR>( probiere ) mit Prog Studio.Mit IF usw. habe ich bis jetzt kein Problem!! <BR> <BR>@Mace -> Danke für Mühe !! Genau das was ich brauche !! <BR> <BR>
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.