Arduino mit reinem C programmieren

Gast #3788015
Lesenswert?

Hallo zusammen,

Da ich der Meinung bin, dass man mit der Standard IDE von Arduino nichts 
dazulernen kann, würde ich das ganze selber mit Atmel programmieren.

Die Einstellungen habe ich bisher richtig und ein einfaches 
blink-Beispiel auch:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRD=0b01000010;

  while(1)
    {
    PORTD=0b01000000;
    _delay_ms(333);
    PORTD=0b00000000;
    _delay_ms(333);
    }
}

Leider finde ich nirgends weitere Beispiele. Ich würde gerne auch das 
Bluetooth Modul & LCD Display verwenden, genaue Beschreibungen bzgl. 
Atmel Programmierung gibt es aber leider nicht, wie ich sehe.

Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?

PS: Verwende das Arduino UNO Board mit dem ATMega328p

LG
D.
#3788018
Lesenswert?

D. schrieb:
> Leider finde ich nirgends weitere Beispiele.
Liegt das vllt. daran, dass du nicht gesucht hast?
Schon hier auf dieser Website findest du viele:
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

> Bluetooth Modul
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
> LCD Display verwenden
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
#3788020
Lesenswert?

D. schrieb:


> Die Einstellungen habe ich bisher richtig und ein einfaches
> blink-Beispiel auch:
dann ändere dein Beispiel mal um, dass es nicht einfach den kompletten 
Port ohne Ansehen des aktellen Zustands der Portbits nei beschreibt, 
sondern das du Bitmanipulationen dazu benutzt, um gezielt einzelne 
Bits auf 0 bzw. 1 zu setzen.
Das ist deine erste Basistechnik, die du beherrschen musst und die dir 
in der Arduino Welt die Funktion digitalWrite abnimmt.

> Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?

Denk dir was aus.
Zb ein Lauflicht über alle 8 Portbits. Ein Knight Rider Lauflicht. Eine 
Ampel.
Nächster Schritt: die Hinzunahme von Eingangspins.
#3788047
Lesenswert?

Um welchen Hersteller (Vetrieb von AVR-Entwicklungsplatinen) es sich 
handelt, spielt keine Rolle. Nutzte selber immer mal gerne die Pro Mini 
(1:1 China Klone) zum programmieren, da diese preislich nicht wirklich 
teurer als die einzelnen MCUs sind.

Wenns halt mal ein Atmega328P sein muss für Hardware UART, dann greife 
ich gerne auf diese zu. Ansonsten wenn das überhaupt nicht erforderlich 
und unnötig mit Software UART ist, dann bleibe ich bei Attinys für meine 
Projekte.

Es würde sich anbieten, am besten mal eine Lektüre zu dem Thema zu 
besorgen. Bei mir hat es mit Arduino programmieren in C aus dem Franzis 
Verlag angefangen. Jedoch gleichzeitig auch das Tutorial hier oder 
RN-Wissen gelesen und abgearbeitet.

"Bluetooth Modul & LCD Display" sind dank des AVR-Tutorial hier mehr 
oder weniger nach LEDs zum Leuchten bringen das trivialste.

Ist das Bluetooth Modul entsprechend über die AT-Befehle passend 
eingestellt, funktioniert es wie mit der Seriellen Konsole. Zum LCD 
Display gibt es in AVR-Tutorial ausreichend Infos. Sogar eine Lib + 
DemoCode ist dabei. Ich nutzte Displays mit dem Attiny84 im 4Bit Mode. 
Kein Problem.

Ich verstehe also das Problem nicht!
#3789445
Lesenswert?

Karl Heinz schrieb:
> D. schrieb:
>
>
>> Die Einstellungen habe ich bisher richtig und ein einfaches
>> blink-Beispiel auch:
> dann ändere dein Beispiel mal um, dass es nicht einfach den kompletten
> Port ohne Ansehen des aktellen Zustands der Portbits nei beschreibt,
> sondern das du Bitmanipulationen dazu benutzt, um gezielt einzelne
> Bits auf 0 bzw. 1 zu setzen.
> Das ist deine erste Basistechnik, die du beherrschen musst und die dir
> in der Arduino Welt die Funktion digitalWrite abnimmt.
>
>> Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?
>
> Denk dir was aus.
> Zb ein Lauflicht über alle 8 Portbits. Ein Knight Rider Lauflicht. Eine
> Ampel.
> Nächster Schritt: die Hinzunahme von Eingangspins.

Danke für die Infos! Mit Bitmanipulation habe ich auch bis jetzt
gearbeitet, dieses Binär-Beispiel habe ich gefunden, anwenden werde ich
diese Art aber eh nicht.
Bzgl. Beispiele dachte ich z.B. an ein fertiges Button-Beispiel für 
Anfänger, werde mich aber im Tutorial umsehen :)
LG

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren