Hallo Schlapfi.

Zitat Zitat von Schlapfi Beitrag anzeigen
Ich dachte ich brauch org 0x00 und org 0x04 nur dann, wenn ich die ISR verwende.
'org 0x00' ist beim PIC16F676 für den ersten ausführbaren Befehl implizit gegeben. 'org 0x04' wird nur in Verbindung mit Interrupts wirklich benötigt. Alles so richtig.
Dann sollte man aber konsequenterweise auch das GIE-Bit nicht setzen!

Zitat Zitat von Schlapfi Beitrag anzeigen
Möchte meine Programme nicht unnötig verkomplizieren.
Bei sehr kleinen Programmen (=am Anfang) wirkt die Strukturierung oft überflüssig, aufblähend. Das ändert sich mit steigender Codegröße sehr bald. Ein Gerücht sagt, dieser Effekt ziehe sich durch praktisch alle Programmiersprachen hindurch! Strukturierung macht Programme i.d.R. robuster gegenüber Änderungen, besser lesbar, pflegeleichter ... Der effektive Code im Controller wird dabei nicht oder nur unwesentlich größer, lediglich der Sourcecode nimmt an Umfang zu.

Zitat Zitat von Schlapfi Beitrag anzeigen
Der PIC fängt ja immer bei 0x00 an, oder sehe ich da etwas falsch.
Ja, dieser PIC macht das so. Es gibt (gab) bei den PICs aber auch ganz andere Konzepte. Es ist gut und hilfreich, mittels org-Anweisungen das jeweilige Programmspeicherkonzept im ASM-Code abzubilden. So kann man beispielsweise die Codesegmente eines PIC16F876 mittels org 0x0000, org 0x0800, org 0x1000 und org 0x1800 im ASM-Programm bekannt machen und verschiedene Unterprogramme dort gezielt platzieren. Das hilft sehr im effizienten Umgang mit der Codesegmentierung und der Assembler hat die Möglichkeit, Adressüberschneidungen zu erkennen.

Zitat Zitat von Schlapfi Beitrag anzeigen
Wie kann ich das mit den Tabellen besser machen ?
Ich kann das nicht besser erklären als die genannte App Note AN556. Grob und aus der Erinnerung heraus gesagt besteht das Problem darin, dass ein simples 'addwf PCL' nur die acht niederwertigsten der (maximal) dreizehn Adressbits beeinflusst! Tritt bei der Addition ein Überlauf von PCL auf, dann muss PCH inkrementiert werden. So ist die Tabellenfunktion wasserdicht programmiert. Insgesamt sind das etwa fünf oder sechs Codezeilen, die dir im Fall des Falles viele Haarbüschel auf deinem Kopf retten werden!

Gruß
Christian.