Bitte um Hilfe. Schreiben einen Aufsatz



  • Hallo alle zusammen,

    Wir schreiben bald einen Aufsatz über unseren Code und haben diesen in Abschnitten zusammenfassen müssen. Jeder Abschnitt muss dokumentiert werden, was in dem Abschnitt passiert. Würde mich freuen, wenn Ihr auch noch vllt. 3, 4 Sätze zu jedem Abschnitt was schreiben könntet, damit ich meinen weiter ausbauen kann und eventuell verbessern.

    Danke im vorraus

    (1. Abschnitt)
    
    #include <E:\at89c5131.h>
    
    sfr at P0 LCD;									
    sfr at P2 LEDS;								
    sbit at 0xC0 SCL; 							
    sbit at 0xC1 SDA; 							
    unsigned char x;								
    unsigned char tempdaten;
    void zeit(unsigned char);
    void clock(void);
    extern void initlcd (void);		
    extern void loeschenlcd (void);
    extern void textlcd (unsigned char *text,unsigned char zeile);	
    extern void cursorpos (unsigned char position);
    extern void deziaus (unsigned char dezi);
    extern void charlcd (unsigned char zeichen); 
    
    unsigned char AdrRD, AdrWR, reg0, reg1, i, reg2;
    unsigned char buf [20] ;	   	
    unsigned char a,b,c;			
    
    (2. Abschnitt)
    
    void main (void)
    {   
    
    		LEDS = 0x01;										
    
    		initlcd ();
    		loeschenlcd ();
    
    		while(1)												
    
    			{
    				SDA = 1;										
    				SCL = 1;
    				SDA = 0;
    				SCL = 0;
    
    				SDA = 1 ;									
    				clock();										
    
    				SDA = 0 ;
    				clock ();
    
    				SDA = 0;
    				clock ();
    
    				SDA = 1;
    				clock ();
    
    				SDA = 0;
    				clock ();
    
    				SDA = 0;
    				clock ();
    
    				SDA = 0;
    				clock ();
    
    				SDA = 1;
    				clock ();
    
    				SDA = 1;
    				SCL = 1;			
    
    (3. Abschnitt)
    
    				while (SDA == 1);										
    				tempdaten = 0x00;										
    
    					for (x=7; x!=0; x--)								
    					{
    						SCL = 0;
    						zeit (1);
    
    						SCL = 1;
    						if (SDA == 1)
    							{
    							tempdaten = tempdaten + 1 ;			
    							}
    						tempdaten = tempdaten << 1 ;				
    					}
    
    						SCL = 0;											
    						zeit (1);
    						SCL = 1;
    						if (SDA == 1)
    							{
    							tempdaten = tempdaten + 1 ; 
    							}
    
    						SCL = 0 ;			
    
    						SDA = 0;										
    						clock ();
    
    						for (x=8; x!=0; x--)						
    						{
    							clock ();
    						}
    
    					SDA = 1 ;
    
    					clock ();
    
    				SDA = 1;
    				zeit (1);
    				SCL = 1;
    				zeit (1);
    				SDA = 1;
    
    (4. Abschnitt)
    
    				if (tempdaten <128)
    					{ 
    
    					cursorpos (0x44);
    					charlcd (0b00101011);
    					}
    				else 
    					{
    					tempdaten = ~tempdaten;
    					tempdaten = tempdaten +1;
    
    					cursorpos (0x44);
    					charlcd (0b00101101);
    					}
    
    (5. Abschnitt)
    
    			   LEDS = tempdaten;
    
    				textlcd ("Zimmertemperatur",1);
    
    				cursorpos (0x45); 				
    				deziaus (tempdaten);
    
    			   charlcd (0xDF); 
    			   charlcd (0x43); 	          	
    
    				zeit (250);
    				zeit (250);
    				zeit (250);
    
    				}
    			}
    
    (6. Abschnitt)									
    
    void zeit (unsigned char ms) 						
    {
    		unsigned char t1,t2; 						
    		for (t1 = ms; t1 != 0; t1--) 				
    			{
    				for (t2 = 165; t2 != 0; t2--);   
    				for (t2 = 165; t2 != 0; t2--);  
    			}
    
    }
    
    void clock (void)									
      	{
     	 zeit (1);
     	 SCL = 1 ;
     	 zeit (1);
     	 SCL = 0 ;
     	 zeit (1);
     	 }
    


  • soso denkst du ich schreib dir jetzt deinen aufsatz? Das is ja mal sowas von dreist: "Ich brauch dazu einen Aufsatz, macht mal!"

    Wenn du zu irgentwas fragen hast wird dir sicher gerne geholfen aber deine hausaufgaben werden hier nicht gemacht.



  • Ich bitte dich/euch doch nicht den aufsatz zu schreiben, das ist ja immer noch meine aufgabe, klar. ich würde mich nur über ein paar sätze zu den abschnitten freuen, damit ich meinen weiter ausbauen kann oder verbessern wenn jemand bessere vorschläge hat. der aufsatz wird weitaus umfangreicher wie nur 2, 3 sätze pro abschnitt aber mehr wie ein paar sätze zu jedem abschnitt verlange ich ja nicht von euch. also wenn jemand dazu lust findet und so freundlich wäre, würde ich mich freuen. danke


  • Mod

    Ok, hier ein Anfang:
    Dieser Code ist in jeder Hinsicht schrecklich, unleserlich, gefährlich, unportabel und veraltet. Ein moderner Compiler wird ihn nicht übersetzen können und das ist auch gut so. Diese Abscheulichkeit gehört sofort gelöscht (oder als positives Beispiel in "C von A bis Z" übernommen 😉 ). Die Unleserlichkeit und Gefährlichkeit des Codes sind so groß, dass man nicht mehr von Unwissenheit durch den Programmierer ausgehen kann, sondern bewusste Sabotage annehmen muss. Beim IOCCC hätte dieser Code gute Chancen, wenn er nur nicht so schlecht wäre.

    Den Rest kannst du sicherlich selber hinbekommen.



    Deklaration von eigenen und (Nichtstandard)Bibliotheksfunktionen
    Definitionen von globalen Variablen
    Zeile 5-8 scheinen compilerabhängige "Features" zu sein, nicht lauffähig auf der Mehrzahl von C Compilern
    2.
    Definition von main inkl. Beginn einer Endlosschleife
    3.
    warten bis (offensichtlich externer) SDA-Zustand wechselt auf != 1
    Setzen von 8 Bits in tempdaten
    4.
    irgendwelche (LCD)Ausgaben in Abhängigkeit von tempdaten
    5.
    dito + irgendwelche statische (LCD)Ausgaben + unbedingtes Warten eine unbestimmte Zeit lang, Ende der Endlosschleife ist nicht explizit ablesbar
    6.
    Definition der beiden eigenen oben deklarierten Funktionen

    Ändert alles nichts daran, dass der gesamte Code Schrott ist und du dir bessere Codes zum Aufsatzschreiben suchen solltest, bei diesem Unsinn prägst du dir nur eben diesen Unsinn ein.



  • Der Quellcode scheint für diesen Microcontroller zu sein, wenn ich vom Headerdateinamen ausgehe:
    http://www.atmel.com/dyn/products/product_card.asp?category_id=163&family_id=604&subfamily_id=1686&part_id=3011

    Hab es nur überflogen. Hier ist ein ähnliches Beispiel:
    http://ces.karlsruhe.de:51080/~BUB/Controller/Projekte/Roboter-Steuerungen-Controller.pdf

    Keine Ahnung welcher Compiler da zum Einsatz kommt 😕

    MfG f.-th.



  • Wutz schrieb:

    1. Zeile 5-8 scheinen compilerabhängige "Features" zu sein, nicht lauffähig auf der Mehrzahl von C Compilern

    Da das wohl für einen µC ist, ist der Compiler höchstwahrscheinlich selbst speziell auf den µC zugeschnitten.

    Definition von main inkl. Beginn einer Endlosschleife

    Bei µC ist es nicht sinnvoll, wenn man das Programm beendet, denn da wartet in der Regel kein OS mehr auf eine Eingabe. Das Programm selbst ist die Software.

    Aber mal ne andere Frage.
    Wie bescheuert ist das überhaupt, für einen Programmcode einen Aufsatz zu schreiben?

    Ich tippte ganz stark darauf, daß so ne Schnappsidee nur von einem Lehrer der Elektrotechnik kommen kann, der von Informatik & Programmieren keine Ahnung hat und nun nen Aufsatz braucht, damit er überhaupt den Code versteht.

    Ein Flußdiagramm und ausreichend gute Kommentare hätte für so etwas eigentlichen genügen müssen, wobei selbst Flußdiagramme heute eigentlich schon zu viel und nicht mehr zeitgemäß wären.

    Fazit:
    @TS
    such dir nen Lehrer der Quellcode ohne Aufsatzhilfe lesen kann.



  • sTNL schrieb:

    damit ich meinen weiter ausbauen kann oder verbessern wenn jemand bessere vorschläge hat.

    Dann poste doch deinen.

    Aber eigentlich hat der aufsatz wenig mit C zu tun. Weil du ja beschreiben musst was der code macht und es alles sehr speziell ist.

    SDA SCL sieht nach diesem I2C bus aus. Insgesamt macht der code ja nix anderes als von nem sensor was auszulesen und das aufs LCD zu schreiben wobei die LCD funktionen ja nicht dein problem sind.

    sag mal hast du den code geschrieben? Weil um den richtig zu verstehen braucht man ja noch das datenblatt von dem sensor und seiner I2C ansteuerung.
    Wenn ich das so überfliege find ich es auch durchaus seltsam, dass der sensor in den speicher des Mikrocontrollers schreiben kann.



  • µC schrieb:

    Fazit:
    @TS
    such dir nen Lehrer der Quellcode ohne Aufsatzhilfe lesen kann.

    Ja nee ist klar. Wir suchen uns ja alle unsere Lehrer nach belieben aus. 🙄



  • lolalter schrieb:

    µC schrieb:

    Fazit:
    @TS
    such dir nen Lehrer der Quellcode ohne Aufsatzhilfe lesen kann.

    Ja nee ist klar. Wir suchen uns ja alle unsere Lehrer nach belieben aus. 🙄

    Will sagen, dass hier wenige Leute Lust haben, den auf dürftigem Wissen beruhendem verunglückten Versuch deines Lehrers, eine sinnvolle Aufgabe zu stellen, auseinanderzufrickeln und in Deutsch zu übersetzen.
    Glaub mir, es gibt durchaus sinnvolle Aufgabenstellungen anhand von C Quellcode, bei denen man sogar was lernen kann, deine Lehreraufgabe gehört nicht dazu.


Anmelden zum Antworten