Ich sehe mir eigentlich nie den Assemblercode meines C-Programms an, weder auf dem PC, dem Tablett noch einem µC. Ich würde mir aber auch nicht zutrauen, zu entscheiden, ob der erzeugte Code sinnlos ist. Die standardgerechte Umsetzung von C auf einer Harvardachitektur ohne Datenstack und mit einem sehr begrenzten Returnstack ist nicht trivial. Da geht es um Sequencepoints, die Rekursivität von Funktionen, die jederzeitige Unterbrechbarkeit durch Interrupte und vieles mehr. Nicht zuletzt ist die Wortbreite des Prozessors mit 8 Bit kleiner als ein C-int, daß mindestens 16 Bit haben muß. Den Vorwurf "Code bewust vergrößert" halte ich für vermessen. Wer das begründet äußert, weil er einen guten standardkonformen C-Compiler programmieren kann, diskutiert hier nicht über die Schwächen einer IDE.
Eigentlich nicht. Zuerst OPTION_REG eingeben, WPUEN ist ja Teil diese Registers, dann solange der Cursor noch auf diesem Fragmet ist, Ctrl-Space. Jetzt bietet einem die IDE unter anderem OPTION_REGbits an. Da es ja um ein Bit in diesem Register geht, ist das schon mal richtig. Steht jetzt OPTION_REGbits. da, werden einem alle vorhandenen Bits in diesem Register angeboten. Als letztes in der Auswahlliste findet sich nWPUEN, also markieren, return fertig. Da WPUEN im Datenblatt mit einem Überstrich markiert ist, ist das n am Anfang nicht ungewöhnlich.Mit der automatischen Codevervollständigung nütz oft leider nichts.
Wenn man zum Beispiel das WPUEN Bit ändern möchte,
musst man erstmal wissen, das dies im Header File als nWPEUN declariert wurde.
Wenn man doch in den Headerfile schauen will, in dem die Register definiert sind, Cursor z.B. auf OPTION_REGbits setzen und Ctrl-linke Maustaste und der File, aus dem das Symbol kommt, öffnet sich (und der volle Pfad ist natürlich in Tooltip sichtbar). Das funtioniert natürlich auch bei eigenen Symbolen und Headerfiles.
Als kurze Lektüre, was die IDE so alles kann, empfehle ich die "Keyboard Shortcuts Card" unter Help.
@Peter Der XC8, vormals HI-TECH C, ist schon einer der besten Compiler für die 8 Bit PICs. Und C für einen Prozessor ohne Datenstack ist zusammen mit einer brauchbaren libc schon eine Herausforderung.
MfG Klebwax
Lesezeichen