Hi. Programmiere jetzt seit ca. einem Jahr Assembler. Hab mir vor kurzen mal das Programm "Bascom-AVR" runtergeladen. Eigentlich ein super Programm mit vielen Beispielprogrammen. Dann hab ich mir ein par Beispielprogramme angeschaut. Wow. Wenn ich denk, wieviele Zeilen Assembler ich schreiben muß, bis ein LCD Display initialisiert ist, da ist Bascom schon gewaltig. Klingt jetzt nach einem großen Vorteil, aber da gibts bestimmt auch Nachteile oder? Kann mir jemand sagen, ob es Empfehlenswert ist, oder würdet ihr eher abraten? Ach ja... Bascom versteh ich halbwegs wenn ich es anschaue, bei C verstehe ich garnix. Danke für jede Antwort Gruß Florian
Bascom erzeugte bei mir für ein einfaches "Hello World" auf das LCD ca. 1kB Code. In Assembler sind es gerade mal gute 100 Byte. Deshalb bin ich von Bascom auf Assembler umgestiegen.
Damit weckst du Emotionen. Aber an sich hast du dir die Antwort selbst gegeben. BASCOM ist leichter verständlich, wenn das Programm etwas komplexer wird es wieder aufwändig und umständlich, C ist etwas schwieriger aber dafür auch bei komplexeren Programmen genau so einfach wie bei einfachen. Aber sieh dir mal das AVR-GCC-Tutorial an. Hubert
Ich gebe auch noch meinen Senf dazu. Ich programmiere bisher nur Assembler. Wenn ich mir das Forum so ansehe, dann denke ich oft "AVR-GCC" wäre jetzt ne gute Möglichkeit um das Problem schneller zu lösen - an Bascom habe ich jedoch noch nie gedacht! Möchtest Du effektiv und schnell programmieren, dann nutze AVR-GCC. Musst Du noch effektiver und viel schnellere Programme programmieren dann bleib bei Assembler! Ausserdem lernst Du so noch mehr über den jeweiligen Controller.
Ich mische mal mit, guten Abend. Ich verwende FastAVR in der Version 3.16. Fast wie BASCOM, aber man kann auch "komplizierte" Rechnungen in einem Rutsch erledigen. Hat einige Bugs: nuja, aber man kann sich den erstellten ASM-Quelltext ansehen und zur Not Hand anlegen.Das geht bei Bascom meines Wissens nach nicht. Der erzeugte QuellCode ist erstaunlich kompakt. Wenn noch andere mal einen Blick draufwerfen müssen (weil man vielleicht gerade mal einen Tag nicht da ist, sehen die Kollegen eher durch, als bei Assembler. Basic kann noch fast jeder. Normalerweise macht man das aber mit C ;-) Dann grinst dann auch keiner von den bessserverdienenden Ingenieuren. Für zu Hause ist das Basic aber voll o.k. egal, ob Bascom oder FastAVR. Wenn der Käfer voll ist, nimmt man eben einen größeren auwei Gruß AxelR.
Ich wurstel schon ne Weile mit Bascom rum, das schöne dabei, Du kannst auch Assembler Befehle einbauen, die dann 1:1 in den Code übernommen werden. Beispiel: Du willst ne komplexe Menüführung für den LCD mix x Eingabemöglichkeiten bauen, In Bascom coden 2 Stunden, in Assembler 2 Wochen. Du Hast komplizierte Rechenoperationen, die du schnell abarbeiten möchtest, brauchst sehr kurze Reaktionszeiten, Bascom 100.000 Zyklen Assembler 10.000. Mit Bascom kannste aber beides in eines vereinen. Basic-Bla bla bla ... Assembler teil ... BAsic-Bla bla Für mich als Gelegenheitsprogger und ehemals C64 Jünger ist Bascom Ideal, weil Projekte schnell erledigt sind (und Basic kann ich auch noch aus der Jugend) Für Bascom gibts auch n recht gutes Forum. Der Größte Haken von Bascom: X = a * b / z ... geht nicht! X = a * b X = X / z ... das geht Wenn man sich aber mal dran gewöhnt hat ists auch kein Problem. Für Professionellere Programmierung ist das AVR-GCC, welches auch schön kompakte flotte Anwendungen kompiliert vermutlich das Maß der Dinge.
hallo, ich progge mit dem neuen fastavr-basic 4.13. es ist fast genauso schnell wie winavr-c. auch in fastavrbasic kann man den asm-code einbauen: $Device= m16 $Stack = 32 $Clock = 8 $Baud = 19200 Dim wert As Byte Dim wert_1 As Byte Declare Sub test() Declare Sub test_1() wert_1=123 test() Print wert test_1() Print wert WaitMs 250 End $Asm .def pebi_1=r24 $EndAsm Sub test() $Asm ldi pebi_1,77 STS wert, pebi_1 $EndAsm End Sub Sub test_1() $Asm lds pebi_1,wert_1 STS wert, pebi_1 $EndAsm End Sub ich mache dieses als hobby und habe zeit. mich interessiert das innenleben des avr in asm. ich möchte sehr hardwarenahe proggen. winavr-c war für mich zu schwer. ich habe schwierigkeiten mit der syntax davon. bascom ist was für progger die schnell das ergebnis sehen wollen und der code dabei uninteressant ist. schnelle timingprogramme, wo es teilweise auf us ankommt, kann man mit bascom nicht schreiben. auch das innenleben vom erstellten programm ist schon manchmal merkwürdig und ich kann den sourcecode nicht ändern. darum habe ich mich für fastavr-basic entschieden. wenn das programm fertig ist, schaue ich mir in aller ruhe den asm-sourcrcode an und manchmal ändere ich sogar etwas. auch habe ich jetzt schon fast alle asm-sourcen für ir-diode, sharpsensoren, uart, compasmodul i2c, i2ceeprom usw kennengelernt. ist für mein hobby erste sahne. möchte ich nicht wieder missen. ich bewundere den erbauer von diesem fastavr-basic. eine sehr gute arbeit. ich kann den originalen asm-sourcr-code in avr studio einladen und testen und dann sogar in avrstudio noch einmal compilieren, falls mir da timingfehler oder anderes auffällt. habe jetzt eine rc5-senderoutine erstellt unabhängig vom benutzten pin am avr (bei bascom gibt es die, bindet aber da auch gleich 2 timer). habe sogar mal eine uart-sofware nachgestellt mit asm in einer sub als test. konnte die sogar unter asm in winavr-c laufen lassen. bei fastavr gibt es keine begrenzung in : a=b+c*d. habe aber festgestellt, wenn ich schreibe: a=a+b a=a+c a=a*d das der asm-sourcecode(schreibweise bascom) hier weniger ist, effektiver und schneller. ist schon interessant. so etwas erkennt man aber nur, wenn man den sourcecode anschauen kann. mfg pebisoft
Hi @ all. Vielen Dank für die zahlreichen Antworten. "C" ist mir wirklich zu hoch. Habe mir jetzt mal den Fastavr runtergeladen.... Bin grad beim probieren. Das mit dem ASM-Code beim fastavr finde ich super, dan man dann eigenlich nachvollziehen kann, was er macht. @pepisoft Kannst du mir bitte mal für einen Atmega 8 ein Blinklicht proggen, damit ich ungefähr den Ablauf des Programmes verstehe. Wäre echt super. Vielen Dank Florian
das basicprogramm, eine leuchtdiode an portb.0 mit 255 ms: $Device= m16 $Stack = 32 $Clock = 8 DDRB=&b00000001 Do WaitMs 255 PORTB.0=1 WaitMs 255 PORTB.0=0 Loop End --------------------------------------------------------------- der source-code mit basicline-code: ;FastAVR Basic Compiler, ver.4.1.3, by MicroDesign ;Created 22:56:17, 04-11-2005 ; .include "D:\FASTAVR\inc\m16def.inc" ; .DSEG .CSEG .ORG 0 _Reset: ldi yl,Low(RAMEND) out SPL,yl ldi yh,high(RAMEND) out SPL+1,yh sbiw yl,32 ;****** USERS BASIC CODE ********************** ;-Line--0006----DDRB=&b00000001-- ldi zl,Low(1) out DDRB,zl ;-Line--0008----Do-- L0000: ;-Line--0009----WaitMs 255-- ldi zl,Low(255) call _Wms ;-Line--0010----PORTB.0=1-- sbi PORTB,0 ;-Line--0011----WaitMs 255-- ldi zl,Low(255) call _Wms ;-Line--0012----PORTB.0=0-- cbi PORTB,0 ;-Line--0013----Loop-- rjmp L0000 L0001: ;-Line--0015----End-- L0002: jmp L0002 ;****** End OF USER BASIC CODE **************** ;////// _Waitms /////////////////////////// _Wms: ldi r20,0x14 _Wms1: ldi r21,0x85 _Wms2: dec r21 brne _Wms2 dec r20 brne _Wms1 dec zl brne _Wms ret ;System Global Variables: 0 bytes ;User Global Variables: 0 bytes mfg pebisoft
zum compilieren mit avrasm32 brauchst du nur die m16def in m8def ändern. mfg pebisoft
Dann ist "C" eigentlich die Königssprache....Und wenn man die Beherscht, sind keine Grenzen mehr gesetzt? Hab jetzt auch mal Win-AVR runtergeladen... Trotz AVR-GCC-Tutorial schaff ich keinen Einstieg.... Es happert ja schon beim makefile...Für was braucht man das? Dann gibts 4 Programme: AVR Insight MFile Programmers Notepad TkInfo Ich find über diese Programme nix im AVR-GCC-Tutorial geschrieben. Also wie ich Anfange, Einstellungssachen beim Notepad, wie ich kompiliere...usw Brauch ich da überhaupt alle=? Gruß Florian ach ja @pepisoft danke für das prog
Makfile: Jörg Wunsch hat dazu das Programm "Mfile" geschrieben. DAmit erstellt man ziemlich simpel makefiles. Es gehört zum Lieferumfang von winAVR dazu. Wenn man das Paket (unter Windows) installiert, bekommt man auch ne Menge Icons auf den Desktop... mindestens zwei davon sind Hilfen. Sonst hilft auch ein Blick ins gcc-Forum; zu finden im Frame auf der linken Seite...
hallo florian. es ist nicht einfach mit winavr-c. habe auch lange gebraucht um meine sensoren am robby zu proggen. das lcd-display und das senden/empfangen von daten über uart-rs232 hat sehr sehr lange gedauert. dann kamen die schwierigkeiten mit der syntax von c --$|&---. wenn man z.b. beim port diese zeichen nicht richtig setzen tut oder übersieht, gibt es keine falschmeldung sondern die pins schalten einfach nicht richtig und das ergebnis ist falsch und dann sucht man und sucht man. darum habe dann mal mit fastavr-basic angefangen. mfg pebisoft
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.