• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Atmel und Bascom
#1
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ß
 
#2
Zitat:Original geschrieben von Bandre
Also sagt mal ob das hier jemanden interessiert dann mache ich mal weiter.

Na klar interessiert das! Nun sag mir nur noch, was ein "Bascom" ist Sad
 
#3
Zitat:Original geschrieben von Rumgucker
Na klar interessiert das! Nun sag mir nur noch, was ein "Bascom" ist Sad

Bascom ist eine Art Basic für Atmel-Controller.
 
#4
Interpretiert der Atmel die Basic-Token oder wird das Basic zuvor auf dem PC compiliert?
 
#5
Bascom erstellt einen Maschinencode, der von Größe und Geschwindigkeit
her sehr akzeptabel ist.
 
#6
Also ein Compiler. Das gefällt mir.

Jo! Zeig uns mal Bascom. Das interessiert mich nun sehr.
 
#7
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. Wink
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
#8
Zitat:Original geschrieben von alfsch
http://lmgtfy.com/?q=bascom

HARHARHAR motz
 
#9
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
 
#10
Zitat:Original geschrieben von rumlungerer
...auch würde Gucki wieder fragen ob ich doof bin..)

Das würde ich nicht mehr fragen. Diesbezüglich hab ich mir schon längst eine Meinung gebildet... klappe
 
#11
nee Holm, nix vergessen Rolleyes
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

Big Grin
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 Wink
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
#12
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
 
#13
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ß
 
#14
Das sieht in C auch nicht viel anders aus....
 
#15
Und ein RC5 Code in C misstrau

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
 
#16
Auch das ist in C nicht anders.

Lungernd,

Holm
 
#17
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ß
 
#18
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
 
#19
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 ? Confused
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
#20
Zitat:Original geschrieben von alfsch
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

herzlichen Dank! Heart