Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Hallo,
will hier mal aufzeigen wie einfach es sein kann ATmega´s/ ATtiny´s mit Bascom zu programmieren.
Vorweg ich betreibe diesen Spaß nur als Hobby, also nicht alles auf die Goldwaage legen.
Ich werde jetzt mal drauf verzichten wie man eine LED blinken lassen kann, und hier versuchen aufzuzeigen wie man mit Bascom schnell kleine Programme erstellen kann.
Mit der Demo-Version von Bascom kann man Programme bis 4KB erzeugen, ferner braucht man noch ein Interface für den Druckerport, da gibt es verschiedene Möglichkeiten, ich habe mich für die Version mit IC entschieden, siehe Alfsch Seite, hat den Vorteil das man nach dem Programmieren das Interface nicht trennen muss.
Bascom beinhaltet eine IDE, Simulator und man kann die Controller direkt aus Bascom programmieren, leider hat der Soft-Simulator Probleme mit machen Timern bzw. machen Controller-Typen, ist aber nicht tragisch einfach das erzeugte Hex-File ins AVR-Studio laden und simulieren.
Die Programm-Beispiele beziehen sich auf eine Schaltung von mir die die folgende Funktionen hat, Controller Atmega48/88:
Messen einer Frequenz (Rechteck) mit 24Bit Auflösung
Ausgabe dieser Frequenz +- 62.5% einstellbar, Tastverhältnis 50/50, Phase wie Eingang.
Schalten eines Portpin nach einer einstellbaren Anzahl von Ausgangsimpulsen, wobei die Anzahl mit steigender Frequenz abnimmt.
Permanente Ein/Ausgabe von Seriellendaten und deren Manipulation.
Einlesen von Daten über einen Soft-UART vom PC.
Ferner kann ich auch ein bisschen schreiben wie das ganze mit einem STM32 aussieht
bzw. wie man ein Programm mit PureBasic schreibt um die Daten in den Controller zu
bekommen.
Also sagt mal ob das hier jemanden interessiert dann mache ich mal weiter.
Gruß
Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Zitat:Original geschrieben von Rumgucker
Na klar interessiert das! Nun sag mir nur noch, was ein "Bascom" ist
Bascom ist eine Art Basic für Atmel-Controller.
Interpretiert der Atmel die Basic-Token oder wird das Basic zuvor auf dem PC compiliert?
Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Bascom erstellt einen Maschinencode, der von Größe und Geschwindigkeit
her sehr akzeptabel ist.
Also ein Compiler. Das gefällt mir.
Jo! Zeig uns mal Bascom. Das interessiert mich nun sehr.
Administrator
Beiträge: 10.242
Themen: 165
Registriert: Jun 2005
http://lmgtfy.com/?q=bascom
http://de.wikipedia.org/wiki/BASCOM
http://www.mcselec.com/index.php?page=sh...p&Itemid=1
der compiler ist komplett und frei bis 4k ziel-code grösse, dh, die "kleinen" AVR zb tiny2313 können damit 100% ausgenutzt werden, die mega8 usw eben nur zur hälfte, was aber oft ausreichend ist.
oder man kauft eben die vollversin, für 89 eu ja noch bezahlbar.
der grosse vorteil von bascom im vergleich zb zu C ist das vorhandensein quasi aller wichtigen "dinge" als befehle :
zb:
ich will ein char-LCD anschliessen und darauf die I2C kommunikation von ...irgendwas darstellen ->
es gibt dafür fertige befehle (= libraries) !
-> $LCD
Instruct the compiler to generate code for 8-bit LCD displays attached to the data bus.
-> I2CINIT
Initializes the SCL and SDA pins.
somit kann so eine eigentlich relativ komplexe aufgabe mit wenigen befehlen in 5 minuten erledigt werden...das is einfach cool.
Don't worry about getting older. You're still gonna do dump stuff...only slower
Lieber Alfsch, Du vergißt, das es den ganzen Kram (Bibliotheken) auch für C (avr-gcc) hinterher geworfen gibt und vieles vieles mehr. Du weißt ja auch wo (Namen habe ich schon wieder vergessen, auch würde Gucki wieder fragen ob ich doof bin..)
Bei C greift aber die Codebegrenzung nicht.
Lungernd,
Holm
Administrator
Beiträge: 10.242
Themen: 165
Registriert: Jun 2005
nee Holm, nix vergessen
dass du libs einbinden kannst, is ja wohl klar.
und dass zb C davon "lebt" , auch.
das geht in bascom natürlich auch (glaube sogar mit C libs..)
der dreh an der bascom ide : es ist halt alles (zumindest sehr vieles) direkt drin, von erzeugung der telefon-wähltöne über RC5 infrarot-commando.code bis zur anbindung von LCDs oder one-wire oder I2C bausteinen;
und wenn ein programmier-adapter am rechner ist, kann auch gleich simuliert und der chip programmiert werden.
noch dazu ganz legal umsonst....(für viele kleinere projekte sind die 4k code-limit völlig ausreichend)
achja...
" Hin und wieder stolpern Menschen über die Wahrheit, aber die meisten rappeln sich wieder auf und eilen weiter, als ob nichts geschehen wäre. "
http://209.85.229.132/search?q=cache:Ojm...clnk&gl=de
i.ü. gibts abgesehen von C, auch ein ähnlich leistungsfähiges und schnelles PASCAL für die avr, C ist hier also eher "unterlegen" , was den umfang der IDEs angeht....aber ein echter C progammierer nimmt natürlich trotzdem C, egal wieviel umständlicher das auch sein mag
Don't worry about getting older. You're still gonna do dump stuff...only slower
Das mit dem "umständlich" ist Ansichtssache. C wurde als Systemprogrammiersprache entwickelt und da will ich eben ab und an ein Byte auf den Speicherplatz schreiben, der auch von einem Integer belegt wird. Pascal klopft mir da auf die Finger, was dort zu Umständlichkeiten führt...
Lungernd,
Holm
Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Zitat:Original geschrieben von rumlungerer
Das mit dem "umständlich" ist Ansichtssache. C wurde als Systemprogrammiersprache entwickelt und da will ich eben ab und an ein Byte auf den Speicherplatz schreiben, der auch von einem Integer belegt wird. Pascal klopft mir da auf die Finger, was dort zu Umständlichkeiten führt...
Lungernd,
Holm
So sieht es in Bascom aus:
Dim W As Word
Dim Wl As Byte At W Overlay
Dim Wh As Byte At W+1 Overlay
Lowbyte von W belegen:
Wl = 255
und zu setzen eines Bit in W:
Set Wh.7
Gruß
Das sieht in C auch nicht viel anders aus....
Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Und ein RC5 Code in C
In Bascom RC5 Empfänger z.B. an Pinc.0 z.B. TSOP 1736
Config RC5 = Pinc.0
Getrc5(Address,Command)
If Address= für mich Then
Mach was
endif
Auch das ist in C nicht anders.
Lungernd,
Holm
Member
Beiträge: 733
Themen: 30
Registriert: Jun 2005
Hi,
es geht mir nicht darum eingefleischte C-Profis auf einen anderen Weg zu bringen, sondern darum, den Hobbyisten bzw. Gelegenheits-Programmierer zu zeigen wie man schnell ohne viel Ballast ein Programm für Atmega und Co. erstellen kann.
Wenn man sich die Mühe macht und sich Bascom anschaut wird man feststellen wie einfach es ist.
Davon mal abgesehen denke ich das die Tage der 8-Bit-MCU`s eh gezählt sind, wenn ich so etwas
sehe.
Gruß
Ich behaupte nicht, das BASCOM für einfache Sachen der falsche Weg ist. Vieles kann so erschlagen werden, das ist wahr, aber wie immer steckt der Teufel etwas tiefer im Detail.
Das die 8Bitter demnächst sterben, halte ich doch für recht unwarscheinlich. Die Kosten eines Produktes werden nicht nur durch den Prozessor gebildet, sondern z.B. auch durch die Platine, da macht es schon einen Unterschied, ob man u.U. mit einer einlagigen Platine hantieren kann oder aber Multilayer mit TSOPs oder gar BGAs einsetzten muß.
Wass willst Du z.B. in einer Waschmaschine, einem Herd oder einer Mikrowelle mit einem Cortex-M? Das Ding langweilt sich zu tode aber kostet Geld..
Lungernd,
Holm
Administrator
Beiträge: 10.242
Themen: 165
Registriert: Jun 2005
Zitat:Wass willst Du z.B. in einer Waschmaschine, einem Herd oder einer Mikrowelle mit einem Cortex-M?
aaaa, Holm, da tun sich ganz neue möglichkeiten auf: die waschma am netzwerk !
dann bekommst beep-peep-beep aktuell die meldung auf dein handy "wasserschlauch geplatzt" und von der eingebauten webcam gleich die ersten live-bilder der überschwemmung dazu....
DAS is doch mal was - oder ?
Don't worry about getting older. You're still gonna do dump stuff...only slower