Dass so ein kurzer (für die Praxis nicht relevanter) Beispielscode in FAST-AVR kürzer ist als ein entsprechendes BASCOM-Code hat 3 Gründe.

FASTAVR startet mit dem Code, sofern kein Interrupt programmiert ist, mit der Adresse 0, also dort, wo sich normalerweise die Interrupt Sprungtabelle befindet. Bascom hat dort RETI Befehle. Wird aus irgendwelchen Gründen ein Interrupt ausgelöst, landet das Programm bei FASTAVR irgendwo mitten in einer Programmsequenz, während bei BASCOM-AVR der unbeabsichtigte Interrupt mit dem RETI-Befehl (Return from Interrupt) gezielt auf dem kürzesten Weg verlassen wird.

BASCOM-AVR löscht gezielt den SRAM-Bereich beim Start, d.h. alle Variablen werden mit 0 bzw. blank initialisiert. FAST-AVR macht das nicht.
Variablen, deren Anfangswerte nicht belanglos sind, müssen bei FAST-AVR im Programm selbst initialisiert werden.


BASCOM-AVR deaktiviert gezielt den Watch-Dog, sofern er nicht benötigt wird.
Eine Fehlinitialiserung führt hier bei FAST-AVR zu sicher nicht gewünschten Effekten.

Es sind also grundsätzliche Hintergrundfunktionalitäten, welche bei BASCOM-AVR bei kleinen Programmen einen größeren Code im Vergleich zu FAST-AVR ergeben aber das Programm sicherer machen.

Sofern jemand für weniger Programmfunktionalität bei FAST-AVR mehr bezahlen will, ist das jedem selbst überlassen. Vielleicht hat auch pebisoft diesen Thread mit der herausfordernden Wortwahl mit der Absicht eingebracht, eine lebhaftere Diskussion über die Unterschiede in Gang zu bringen.

Eine wirklich fundierte Aussage über zwei Programmpakete kann man sicher erst dann treffen, wenn man eine größere Applikation in beiden Compilern entwickelt, und die Code-Sicherheit in der Praxis getestet hat.

Nach einem grundsätzlichen Überblick über beide Compiler und den sehr eingeschränkten Simulationsmöglichkeiten in FAST-AVR (bzw. ATMEL Studio, FAST-AVR hat ja keinen Simulator) für BASIC-Variablen habe ich mich für BASCOM-AVR entschieden und es bisher nicht bereut. Wie kann man z.B. im ATMEL-Simulator die
Ausgabe mit Print-Befehl
Ausgabe auf LCD
Wert von Variablen
testen?