Verdrahtungsalternative für Arduino - BASCOM-AVR

  • Tutorial
Nun, ich mag dieses von eurer Verkabelung nicht. Und aus irgendeinem Grund kompiliert er mich sehr langsam, und dann denkt er lange vor der Firmware.
Ich werde versuchen, über eine alternative Umgebung für die Programmierung von AVR-Controllern zu sprechen, die einen Code-Editor, einen Compiler und einen Debugger-Simulator kombiniert. Darüber hinaus kann in neueren Versionen die Umgebung ohne unnötige Gesten mit dem Arduino-Bootloader verwendet werden (d. H. Ohne das Board zu ändern, den Bootloader zu flashen usw.).



Installation

Wir gehen zu Offsite oder klicken einfach auf den zweiten Link am Ende des Themas - eine Demoversion der Umgebung (30 MB) wird sofort geladen. Die Demo bedeutet nur, dass Sie Projekte sammeln können, deren Gewicht in kompilierter Form 4 KB nicht überschreitet. Für die meisten Projekte ist dies ausreichend (ja, besonders für Attiny2313 ), und wenn nicht, müssen Sie einen Crack für die neueste Version des Rutrackers kaufen , da dieser nicht sehr teuer ist - 89 Euro .
Die Installation ist völlig normal. Wenn jemand nicht in Win7 oder höher startet, stellen Sie den Kompatibilitätsmodus auf XP. Under the Vine funktioniert einwandfrei. Eigentlich müssen Sie es nicht installieren - kopieren Sie einfach den Ordner, es ist eine ziemlich portable Version.

Verwenden Sie

Hauptfenster:

Alle Schaltflächen sind mit Hinweisen versehen, und ich glaube, es ist nicht erforderlich zu erklären, was und wo sich befindet.
In den neuesten Versionen wurde es sehr anständig ins Russische übersetzt, was in Optionen - Umgebung - IDE - Sprache - Russisch enthalten sein kann.

Hier liegt eine Kopie der Arduino Nano-Platine herum, die ich beim Debuggen lange Zeit verwendet habe und die aufgrund der Abneigung gegen die Arduino IDE direkt über den Programmieranschluss geflasht habe.

Lassen Sie uns versuchen, etwas für sie zu schreiben. Zuerst müssen Sie den Typ des MK - Atmega168 einstellen. Dies geschieht mit der folgenden Zeile:
$regfile = "m168def.dat"    

Warum so eine Linie, klar zu denken. Natürlich können Sie den Reglertyp unter "Einstellungen" - "Compiler" - "MK" einstellen. Im Text ist dies jedoch praktischer. Sie können im Programmordner sehen, welche Dateien für die verschiedenen Steuerungen aufgerufen werden (c: \ Programme \ MCS Electronics \ BASCOM-AVR \ *. Dat).
Stellen Sie die Taktfrequenz ein:
$crystal = 16000000 

16 MHz. Es wirkt sich nur auf den Countdown der Zeitintervalle (Waitms) aus. Legt die Frequenz für den Controller nicht fest. Sie müssen es noch selbst belichten, ich programmiere den Fuse-Block. Für Arduino kann dies jedoch nicht gestört werden.
Ports konfigurieren:
Config Portb.5 = Output   

Keine Lizenznadeln, nur Hardcore. Wir suchen im Datenblatt nach einem bestimmten Controller und sehen die
Bild
Portnamen : PD1 = portd.1, pb4 = portb.4
Sie können jeden Port auch einzeln einstellen, aber schreiben Sie einfach: Config Portb = Output

Führen Sie eine bedingungslose Schleife aus (Sie können es auch ohne ausführen, dann wird das Programm ausgeführt) nur einmal beim Starten der Steuerung)
Do
Loop


Und darin blinken wir zum Beispiel die LED:
  Toggle Portb.5   

Portb.5 ist das gleiche wie Pin 13 in Arduino. Entsprechungen (wenn Sie an einen solchen Namen für die Ports gewöhnt sind) finden Sie hier:
Bild

Die Syntax ist sehr einfach und erinnert an grundlegende. 7 Arten von Variablen: Bit, Byte, Integer, Word, Long, Single, String.
Was zu Beginn des Programms so angesagt ist: Dim A als Single
Sehr einfache Verbindung zu den Bildschirmen des HD44780-Controllers:
Config lcd = 16*2
Config lcdpin = PIN, DB4 = PORTB.1,DB5=PORTB.2,DB6=PORTB.3,DB7=PORTB.4,E=PORTB.5,RS=PORTB.6
Config lcdmode = PORT

Und die gleiche einfache Schlussfolgerung zum Text auf ihnen:
Lcd "Hello, habr! " ; time

Aber trotz seiner Einfachheit gibt es eine Cursorsteuerung, einen eingebauten Zeicheneditor und kyrillische Unterstützung.
Einfache Klangerzeugung:
Sound, Portb.0, 100, 500

Dies bedeutet, dass auf PB0 ein Mäander mit einer Frequenz von 500 Hz und einer Dauer von 100 ms ausgegeben wird.
DTMF-Tonerzeugung:
Dtmfout, 15, 100

15. Ton für 100ms.
Arbeite mit UART (sowohl mit Eisen als auch mit Software):
Dim Name as String * 10
$Baud = 9600
Input "Hello, print you name", Name
Print "Name: " ; Name

Mit Interrupts arbeiten:
On Int0 Button - Имя подпрограммы
Config Int0 = Low Level - Прерывание по низкому уровню
Enable Interrupts - Включить прерывания
Enable Int0
Button:
  Incr Cntr
Return

Mit Timer:
Config Timer0 = Timer , Prescale = 64 - Настраиваем таймер и предделитель
On Timer0 Pulse: - Имя подпрограммы
Enable Interrupts - Включить прерывания
Enable Timer0
Pulse:
  Incr Cntr
Return


Arduino-Firmware

In der neuesten Version haben die Entwickler Unterstützung für den Arduina-Bootloader hinzugefügt, und wir müssen nur einige Einstellungen vornehmen.
Optionen - Programmierer - ARDUINO . Geben Sie dann den COM-Port und die Geschwindigkeit an.

In meinem Fall musste die Geschwindigkeit genau 19200 angegeben werden, sonst wurde die Platine nicht geflasht. Sie können die Parameter aller Boards in einer Datei unter arduino-1.0.1 \ hardware \ arduino \ boards.txt anzeigen.
Übrigens gibt es auch eine Speichergröße und eine Chipfrequenz :


nano.name=Arduino Nano w/ ATmega168
nano.upload.maximum_size=14336
nano.upload.speed=19200
nano.bootloader.low_fuses=0xff
nano.bootloader.high_fuses=0xdd
nano.bootloader.extended_fuses=0x00
nano.build.mcu=atmega168
nano.build.f_cpu=16000000L


Альтернативный способ загрузки(мне не нравится встроенный прошивальщик своей медлительностью) — с помощью AVRDUDE, мощнейшего консольного программатора.
Скачиваем последнюю версию вот отсюда , например avrdude-5.11.tar.gz. Распаковываем в папку с программой.
Идем в Options — Programmer — External Programmer, и указываем в после Programm путь до исполняемого файла:
«C:\Program Files\MCS Electronics\BASCOM-AVR\ARVDUDE\avrdude.exe»
А в после ниже — параметры в таком виде:
-C «C:\Program Files\MCS Electronics\BASCOM-AVR\ARVDUDE\avrdude.conf» -p atmega168 -P com2 -c arduino -b 19200 -U flash:w:{FILE}:i
Aus den Namen geht alles klar hervor, wir zeigen, wo sich die Konfiguration befindet, wir geben den Controllertyp, den Port, das Protokoll, die Geschwindigkeit, die Arbeit mit Flash, die Aufnahme und die Datei an. Wir kreuzen Use HEX file an.
Für die größte Freude können Sie auch den Punkt Programm nach dem Kompilieren notieren - mit einem Knopf kompilieren und blinken.
Während der Montage zeigt das Programm den Verbrauch des verfügbaren

Flashs an : Und dann startet ARVDUDE:


Von der Seite aus können Sie auch die Hilfe für die Pins des ausgewählten Controllers aktivieren (standardmäßig und wenn nicht, aktivieren Sie Ansicht - Pin-Layout ):

Wenn Sie den Mauszeiger über den Pin halten, werden dessen Name und Beschreibung angezeigt .
Wenn dies nicht ausreicht, können Sie das Datenblatt herunterladen und View - PDF Viewer aktivieren :


Eine weitere coole Sache ist der eingebaute Debugger mit Simulation von Eisen, Haltepunkten und schrittweiser Ausführung.

Das Einschalten erfolgt per Knopfdruck mit einem roten Mikrokreis, natürlich müssen Sie zuerst das Programm kompilieren.

Auf der anderen Seite ist der in bascom kompilierte Code viel kleiner und läuft oft schneller als der Code aus der Arduino IDE.
Zum Beispiel Standard-Blinken (blinkende LED):
Für Arduino:
void setup() {                
  pinMode(13, OUTPUT);     
}
void loop() {
  digitalWrite(13, HIGH);
  digitalWrite(13, LOW); 
}

Es kompiliert Hex mit einer Größe von 3078 (!!!) Bytes und zieht einen Pin mit einer Frequenz von 210 kHz:


Und in Bascom, geschrieben wie folgt:

$regfile = "m168def.dat"
$crystal = 16000000
Config Portb.5 = Output
Do
  Toggle Portb.5
Loop

Es belegt 553 Bytes (fünfmal kleiner) hexadezimal und blinkt bereits mit einer Frequenz von 1,6 MHz:


Referenzen:


Jetzt auch beliebt: