Mit Atmega Starten und wenn fertig auf Attiny laufen lassen

Als Neuling interessiert mich Folgende Frage.

ich möchte ein kleines mini Programm erst einmal auf dem Uno ( Atmega328P) laufen lassen und wenn alles Funktioniert dann Anschließend auf den Attiny13A

Das kleine Mini Programm habe ich mit Ardruino Geschrieben.

Wenn dann mein bestellter Attiny13A angekommen ist, möchte ich das Gleiche Programm dann auf diesen laufen lassen.
Programieren will ich diesen dann mit Microchip Studio.

Ich würde dann wie folgt verfahren wollen.
Ich lade im Mikrochip Studio in der Ardruino Schnitstelle mein Programm und Wähle Anschließend den Attiny13A aus.
natürlich Passe ich die Ports entsprechend an.

würde das so funktionieren?

Gruß Markus

Was heißt "Ports anpassen" ?
Du meinst bestimmt die Pins ?

Kann funktionieren, wenn du Timer, Flashgröße usw. dabei berücksichtigst.
Da du davon nichts schreibst, kann man auch nicht viel darüber sagen.

Hallo
Ich würde mit BWOD Beispiel aus dem IDE einfach mal üben. Hier muss man bestimmt auch die Ports anpassen.

ja mit der Port Anpassung meine ich natürlich die Pins.

Testen möchte ich das kleine Programm.
LED Dimmer

void setup()
{
  // put your setup code here, to run once:


pinMode(5, INPUT);
pinMode(3, OUTPUT);  
}



void loop() {
  // put your main code here, to run repeatedly:
analogWrite(3, (analogRead(5)*0.249));
delay(5);
}

wenn du heute schon weist, dass du mal die Pins ändern musst, dann schreib die doch nicht hardcoded in den code, sondern verwende Konstanten dafür!

Für analogRead verwendest du sicher einen analogen Eingangspin.
Den brauchst du nicht als Input zu definieren. Evtl. nur als "Ax". x steht für die analoge Pinzahl.

oder arbeite mit Präprozessor Anweisungen.

Du das ist meine erste Übung.
ich weis nicht was Konstanten sind.
und das Buch was ich mir zugelegt habe wirbt damit das alles so einfach ist. Letztendlich ist es etwas für Leute die mal einen einblik gewinnen möchten!
Es gibt weder eine Beschreibung wie man Überhaupt Programiert noch gibt es eine Befehls Beschreibung.

Ich Brauche Dringenst ein Vernümftiges Buch das einen alles Erklärt was man wissen mus.

Und dann startest du mit solch einen Projekt, was nicht gerade Anfängerfreundlich ist ?
Und solch ein Buch gibt es nicht.

Hallo
dann studiere am Besten das Beispiel.

Irgend etwas muss es doch geben!
Wie soll ich das denn sonst lernen?

Ach ja in der Chip Beschreibung Steht zwar das der Attiny
1 Analogen Eingang hat
und 2 PWM Ausgänge.
Allerdings sind diese im Datenblatt für mich nicht erkentlich

Klar gibt es da was, aber nicht nur ein Buch, wo du alles daraus nehmen kannst.
Suche nach einem Arduino Buch und zusätzlich ein C++ Buch. Und hiermit kannst du schon mal anfangen zu üben.
Und sieh dir das Pinout des ATtiny13a an, da werden die Pins beschrieben.

Ja das ist doch schon mal was.
Die Benötigten Pins habe ich gefunden via Google.
Ich bin Anfangst davon ausgegangen das ich diese Angaben Übersichtlich im Attiny13A PDF Dokument finde.
Laut dem was ich nun gefunden habe Müsste dann der Attiny13A dann 2 PWM und 3 oder 4? Analoge Eingänge haben?

wenn ich HotSystems richtig Verstanden habe ist es so das ich Analoge Pins Mit z.b. A0 Defenieren kann. ist auch Verständlicher. Wobei in mein Beispiel auch A5 Aktiviert wurde und nicht 5! Obwohl ich kein A gesetzt habe.

Ich interessiere mich derzeit für die Steuer und Regel Technik.
Darum habe ich für mich Als Grundlage zur Verständnis einen Dimmer ausgesucht! Sprich Mit einen 10k Lin Poti Steuere ich die LED an. bei meiner Untersuchung ist mir Aufgefallen das die PWM Frequenz 490,1Hz beträgt.
ist diese Frequenz auch veränderbar? Wenn ja wie macht man das?

Je nach Potistellung kann es Passieren das das PWM Signal zwischen 2 Werten hin und her zappelt. So das die Breite der Amplitude nicht gleich bleibt. Je nach Helligkiet der LED ist dieses verhalten auch Optisch Sichtbar. Das heißt ich benötige nicht Zwingend ein Ossi um das sehen zu Können.
Gibt es auch hier zu eine Möglichkeit dieses verhalten zu unterbinden?


Rosa und türkis hinterlegt sind die Bezeichnungen für die Arduino-IDE.

Dann legst Du Dir mit der Nutzung eines ATtiny13 aber mächtig Steine in den Weg, denn auf dem läuft mangels Speicher nur sehr wenig!

Auf den UNO probieren und mit dem Nano oder ProMini ins Projekt, weil kleiner, ist einfacher zu realisieren, weil da derselbe µC werkelt.

ich bin mir bewust das der Kleiner ist. Mir geht es u.a auch um eine Übung das Programm auf diesen Typ auch am laufen zu bekommen.
ich hätte genauso auch ein Atmega8 oder ATmega48 nehmen können um zu sehen was ich berücksichtigen muß.
ja der Attiny13A ist klein das weis ich und ein Par kleine mini Programme kann er.
Ich Fange Klein An. Dafür ist er erst einmal gut Genung.

Wobei mich #13 mehr interessiert.
da suche ich auf meine Untersuchungen noch entsprechende Lösung

Mittelwertbildung ist dafür geeignet.

Ich verwende gern sowas: wert = ((wert * (n-1)) + neuerWert) / n;

ist zwar gut gemeint nur kann ich damit nicht´s anfangen dafür bin ich in der thematik noch zu frisch.

ich habe gerade versucht das Umzusetzen. da bekomme ich sofort Error Meldungen egal was ich da mache.
Auch Weis ich nicht wofür überhaupt n-1 steht.
ich habe wie Folgt ausprobiert:

void setup()
{
  // put your setup code here, to run once:


pinMode(5, INPUT);
pinMode(3, OUTPUT);  
}



void loop() {
  // put your main code here, to run repeatedly:
 //analogWrite(3, (analogRead(5)*0.249));
 analogWrite(3, (analogRead(5)*n-1))+analogRead) / n ;
 
delay(300);
}

dann kommt die Fehlermeldung wie folgt:
ino: In function 'void loop()':
LED_DIMMER_uno_r3_01:15:32: error: 'n' was not declared in this scope
analogWrite(3, (analogRead(5)*n-1))+analogRead) / n ;
^
exit status 1
'n' was not declared in this scope

Oder eine gewisse Hysterese, dass sich der Messwert um mehr als x Digits (x zwischen 2 und 4) vom vorher genutzen Wert unterscheiden muss, um eine Reaktion auszulösen.

Gruß Tommy

Freunde ich bin absoluter Anfänger mit 0 Kentnisse was das Programieren betrift!
ich brauche da schon eine etwas genauere Erklärung!
Was Bewirkt Befehl X. Wo wird er eingebaut und was macht dieser genau.
wie Frage ich einen wert ab. Wie kann ich dann diesen wert beeinflussen und Woher zaubere ich dann den neuen Wert her?

@Tommy56 Deine Idee gefällt mir in der Praxis sieht das auch so aus das der Wert zwischen 1-2 Punkte zappelt.
Wenn ich schon eins erfahren habe ist es so das es mehrere Möglichkeiten gibt ein Problen zu lösen.
Ich Würde deine Methode gerne einmal Ausprobieren.
Was muss ich verändern?

  1. Die Grundlagen lernen. z.B. hier
  2. ein gutes C++-Buch z.B. hier

Ansonsten letzten genutzten Wert merken, neuen Wert mit diesem vergleichen, ob die Differenz >= x ist. Wenn ja ändern+merken, wenn nein verwerfen.

Gruß Tommy