ATtiny2313 Programmieren

Gast #1961531
Lesenswert?

Ich möchte einen Microcontroller für ein Projekt Programmieren.
Nur habe ich noch keine Ahnung vom Programmieren.
In dem Programm das ich schon habe ( das Projekt gibt es bereits 
http://uzzors2k.4hv.org/index.php?page=blucar)
müsste ein zweiter Servo angesteuert werden und die Leds müssten 
rausgenommen werden.
Für Hilfe wäre ich sehr Dankbar.
1
/* Bluetooth Controlled Car
2
Accpets commands through UART, via GP-GC021 Bluetooth Module
3
Control of head lights, brake lights, one drive motor and one
4
steering servo are implemented.
5
Clock frequency is 4MHz
6
*/
7

8
#define HDLED PORTB.B7
9
#define BRKLED PORTB.B6
10
#define M1p PORTB.B5
11
#define M1m PORTB.B4
12
#define SERVO PORTB.B3
13

14
unsigned short uart_rd;
15
char pos;
16

17
// Posistion Servo Rotor
18
void position(){
19
     char i;
20
     SERVO = 1;
21
     // create ON-time delay in 10ths of a ms, delay in for-loop, hence less than 100ms
22
     for (i=0; i<=pos; i++) Delay_us(85);
23
     SERVO = 0;
24
     Delay_ms(12);
25
}
26

27
// Write outputs
28
void action(){
29
// simple error check
30
   if ((uart_rd & 0b00000011)>0){        // faulty byte received, since last two bits aren't used
31
      // clear outputs, center servo
32
      PORTB = 0;
33
      UART1_Write(0b00000011);           // send error, ie faulty bits
34
      pos = 14;                          // compensate for off-center rotor placement, 1.5ms should be standard
35
   }else{
36
      // write outputs, place servo
37
      UART1_Write(uart_rd);              // send response
38
      if ((uart_rd & 0b00001000)>0){
39
           pos = 9;
40
      }else if ((uart_rd & 0b00000100)>0){
41
           pos = 18;
42
      }else{
43
           pos = 14;                      // compensate for off-center rotor placement
44
      }
45
      PORTB = uart_rd & 0xF0;
46
   }
47
}
48

49
// Read UART and call action
50
void main() {
51
     UART1_Init(9600);                   // Initialize UART module at 9600 bps
52
     Delay_ms(100);                      // Wait for UART module to stabilize
53
     DDRB = 0b11111000;                  // PORTB as output, save PB0, PB1 and PB2 which aren't used
54
     PORTB = 0;                          // Initialize portb
55

56
 while (1)
57
 {
58
       if (UART1_Data_Ready())           // If data is received,
59
       {
60
          uart_rd = UART1_Read();        // read the received data
61
       }
62
       action();                         // write outputs
63
       position();                       // posistion servo
64
 }
65
}
Persönliche Seite #1961541
Lesenswert?

Das (unvollständige) Programm ist im Moment mit den Warteschleifen so 
ausgelegt, dass der vorhandene Servo allein die Macht hat.

Das so hin zu biegen, dass alter Servo und neuer Servo sich gefühlt 
gleichzeitig bewegen, ist schwierig bzw. erfordert umfangreiches neu 
schreiben.

Etwas einfacher ist es, wenn du angeben kannst, ob ein Servo Vorrang hat 
und der zweite Servo sich nach dem ersten Servo bewegt.
Gast #1961604
Lesenswert?

ne keine Falle -.-
hab nur kA wie ich das noch schaffen soll
wenn ich das proragrmm fertig haben würde mit deutschen kommentaren
würde ich versuchen es zu verstehen.
nur in der kurzen zeit schaffe ich das nicht selber
ich müsste dann sowieso noch nadere funktionen einbauen
#1961626
Lesenswert?

Alex B. schrieb:
> nur in der kurzen zeit schaffe ich das nicht selber

was von dem Code hast du denn die letzten 2 Tage dir erarbeitet oder 
hast du das Projekt 2 Tage beiseite gelegt ?
Bei insgesamt 3 Wochen Zeit sollte für dich jeder Tag (und jede Nacht) 
zählen. Alternativ könntest Du auch am Montag deinen Lehrer bitten dir 
ein anderes und einfacheres Projekt zu geben. Sowas wie Ansteuerung 
einer LED als Blinker mit einem Mikrocontroller.
Gast #1961637
Lesenswert?

habe noch für Arbeiten zu lernen in denen ich nicht
wirklich eine 6 schreiben will

ein neues Projekt kann man vergessen weil wir
uns in das projekt vertiefen sollen
wir dürfn auch hilfe aus foren u.a. benutzen wir dürfen uns auch den 
programmcode kopieren.
wir müssen ihn dann nur verstehen.
Deshlb wäre es echt nett wenn uns vllt. jemand helfen kann...
Gast #1961640
Lesenswert?

>wir dürfn auch hilfe aus foren u.a. benutzen wir dürfen uns auch den
>programmcode kopieren.
Das glaub ich nicht.

>wir müssen ihn dann nur verstehen.
Daran dürfte es scheitern.

Mensch nochmal, setz dich auf deinen Hosenboden und arbeite! Es kann 
doch nicht sein das die Leute heutzutage dermaßen faul sind. Und 
verdammt nochmal,
>Groß- und Kleinschreibung verwenden !
#1961650
Lesenswert?

@  Alex B. (Gast)

>habe noch für Arbeiten zu lernen in denen ich nicht
>wirklich eine 6 schreiben will

Ja und?

>wir dürfn auch hilfe aus foren u.a. benutzen

Mag sein, ist ja auch nicht verwerflich.

>wir dürfen uns auch den programmcode kopieren.
>wir müssen ihn dann nur verstehen.

Ohhh, hier wird das Eis aber sehr dünn.

"Nur selber denken macht geistig fett."

Und dazu gehört es auch, ein Programm von der Pike auf SELBER zu 
erstellen.
Erst recht für Schüler und Studenten.

>Deshlb wäre es echt nett wenn uns vllt. jemand helfen kann...

Hilfe zur Selbsthilfe.

"Ich möchte einen Microcontroller für ein Projekt Programmieren.
Nur habe ich noch keine Ahnung vom Programmieren."

Aha, du hast also in der Schule bisher nix über Programmierung gelernt, 
sollst aber jetzt mal fix eine Hausaufgabe dazu machen.

Da musst du schon "etwas" früher aufstehen, um die Leute dermassen zu 
verarschen.

MFG
Falk
Gast #1961656
Lesenswert?

UND WAS IST DAS HIER EIGENTLICH FÜR EIN FORUM?

ICH WEIß SELST DASS ICH FAUL BIN DARAUS KANN MAN MIT HILFE ABER
DAS BESTE DRAUS MACHEN
DENN GRADE BIN ICH BEREIT WAS ZU TUN

ABER DAS EINZIGSTE WAS HIER IN DIESEM FORUM PASSIERT IST DSS EINEM DIE
HOFFNUNG
DAS PROJEKT NOCH IRGENDWIE HINZUBIEGEN KOMPLETT GENOMMEN WIRD

HF BEIM LESEN MIT CAPS ON
#1961657
Lesenswert?

Alex B. schrieb:
> danke für die "Beleidigungen" <3

Kann man so sehen, ja.

Dann musst du aber auch anerkennen:
Sich hinzustellen mit einer Aufgabe, die man dir aufgetragen hat,
keine Zeit und Lust haben die selber zu lösen, weil du ja so
dringend anderes zu tun hast, dann zu erwarten, daß andere hier
deine Arbeit machen, obwohl du das Thema überhaupt nicht
durchdringen willst, geht am Kern eines solchen Forums vollkommen
vorbei.
Das ist ehrenamtlicher Hausaufgabenlösdienst von Leuten, die am
liebsten nochmal zur Schule gehen würden.

Wer sich redlich bemüht, bekommt hier enorme Hilfe.
Aber seinen Müll hier abladen und irgendwann die Lösung abholen
wollen, ist eine Unverschämtheit.

In Anbetracht dessen habe ich mich noch sehr dezent ausgedrückt.

Ich kann auch deutlicher werden, falls nötig.
#1961665
Lesenswert?

Alex B. schrieb:
> ja toll Kenntnisse zur Programmierung habe ich schon
> nur bei C# versteh ich nur Bahnhof

was für Kenntnisse hast Du denn? Vielleicht ist die in diesem Projekt 
benutzte Programmiersprache auch einfach nur für dich ungeeignet.

Lerne den grundlegenden Unterschied zwischen C, C++ und C# erstmal 
kennen - ich meine dabei nicht mal das syntaktische. Dann kämen nicht 
solche Aussagen zustande.
Gast #1961668
Lesenswert?

Klaus Wachtler schrieb:
> Alex B. schrieb:
>> DENN GRADE BIN ICH BEREIT WAS ZU TUN
>
> Tu dir keinen Zwang an!
>
> Alex B. schrieb:
>> wenn ich das proragrmm fertig haben würde mit deutschen kommentaren
>> würde ich versuchen es zu verstehen.
>
> Das hört sich aber nicht nach Selbermachen an, sondern nach
> "macht ihr mal, ich schaue es hinterher an (falls ich Zeit habe)".

Klaus danke für deine tollen Texte aber deine weiteren Kommentare sind 
hier nicht mehr erwünscht
Gast #1961683
Lesenswert?

ja toll is halt so...
deswegen frage ich ja nach Hilfe!


>Such dir ein Servoprojekt mit Bascom - da
>wirst du am ehesten von der drohenden 6 noch eine 5+ erreichen.

von Bascom habe ich auch schon etwas gehört damit sollen wir dass 
Programm dann auf dem µC schreiben wenn ich das richtig verstanden habe
ich Blick hier grade komplett nicht mehr durch ...
#1961697
Lesenswert?

Mag sein, daß ich dir unrecht tue, aber wenn man das hier so liest, 
kommt mir es so vor: Du hast eine Hausaufgabe bekommen. Erstmal liegen 
lassen, weil keine Lust. Als die Zeit zur Abgabe knapp wird, irgendwas 
von irgendwoher zusammenkopiert und jetzt willst du, daß andere das für 
dich zu einem lauffähigen Projekt umschreiben, was deine Aufgabe 
erfüllt. Schön wäre auch, wenn man es noch ausführlich in deutsch 
kommentiert, da du mit den englischen Kommentaren des zusammenkopierten 
Programms scheinbar Probleme hast. Eigeninitiave hast du bisher keine 
gezeigt.

Hier mein Vorschlag: Da du noch keine Ahnung vom Programmieren hast, ist 
der erste Schritt, das Programmieren zu lernen, z.B. mit Visual Studio 
unter Windows oder KDevelop o.ä. unter Linux. Microcontroller 
programmiert man meist in C, nicht in C# (es sei denn es sind größere 
Chips mit Windows CE). Danach kannst du dann eine LED-Blinkschaltung per 
Microcontroller versuchen und wenn du schließlich genug Erfahrung hast, 
dann dein Servo-Projekt umsetzen.
Gast #1961700
Lesenswert?

Also, hier ein paar Tipps:

Entscheide dich für Basic (Bascom) (vielleicht ganz gut wenn du schon 
mit der C-Control gespielt hast) oder C.

Dann entweder ein Bascom-Tutorial oder das AVR-GCC-Tutorial hier 
durchlesen.

Dann neuen Nicknamen wählen, "Nadine", "Nicole", "Jasmin" oder sowas.

Dann die Frage entweder hier oder im Bascom-Forum nochmal stellen, etwas 
vom frisch erworbenen Grundlagenwissen raushängen lassen, damit du nicht 
als ahnungslos und hoffnungsloser Fall rüberkommst.
Gast #1961711
Lesenswert?

so ich fange noch mal ganz neu an:
In der Schule haben wir ein Jahresprojekt am laufen
in 2 Wochen soll schon mal etwas zu sehen sein -
bei unserem Projekt soll man wenigstens schon mal sehen dass Daten 
übertragen werden und ein App für Android geschrieben hat.
Das Hauptproblem im Moment ist:
den µC zu Programmieren, das Programm auf den µC zu übertragen.
Kann mir evtl. jemand eine Liste mit benötigten Programmen vllt. auch 
mit Links zusammenstellen?
bräuchte zuerst mal das Programm mit dem man oben genanntes Programm 
umschreien kann.
Persönliche Seite #1961713
Lesenswert?

Und? Dann fang zu arbeiten an.

1. bis 2. Woche

Überlegen und beschreiben was der zweite Servo machen soll.
Behindern sich 1. und 2. Servo oder kann das zeitkritisch werden?
Wie sollen die neuen Kommandos für den 2. Servo zum Attiny2313 kommen?
Wenn der Sender selbst ein Programm ist, kannst du das überhaupt auch 
noch umschreiben?

Wie baut/kauft man einen ISP-Programmieradapter um das übersetzte 
Programm in den Attiny2313 zu laden?

Wie baut/kauft man die Hardware um den Attiny2313 herum?

Müssen sonst noch Hardwareteile mit Lieferzeiten beschafft werden?

3. bis 6. Woche

Kleiner C-Grundkurs um zu verstehen, wie ein C-Programm geschrieben 
wird.

Was sind Datentypen, Variablen, Funktionen, If-Abfragen, 
While-Schleifen, For-Schleifen und Bitmanipulationen.

Durchnummerierung aller Zeilen im Originalprogramm. Beschreibung jeder 
einzelnen Zeile im Originalprogramm, die man bereits versteht. 
Programmablaufpläne (Flussdiagramme) skizzieren.

Wie installiert man einen C Compiler (AVR Studio plus WinAVR) und wie 
setzt man ein Projekt auf.

Wie kompiliert man ein einfaches Projekt (Blinkende LED).

Wie simuliert man ein einfaches Projekt (Blinkende LED).

Hardware aufbauen.

7. bis 8. Woche

Wie setzt man den Code des Beispielprogramms in die jetzt bekannten 
Codestruktur für AVR Studio plus WinAVR um?

Wie läuft das umgebaute Originalprogramm auf dem Simulator?

Spätestens jetzt sollte die Hardware (Attiny-Platine plus ISP-Adapter) 
vorhanden und betriebsfertig sein.

Wie läuft das übersetzte Programm auf der zusammengebauten Hardware?

10. bis 12. Woche

Erweiterung, Simulation und Test des umgeschriebenen Originalprogramms.
#1961718
Lesenswert?

@  Alex B. (Gast)

>In der Schule haben wir ein Jahresprojekt am laufen
>in 2 Wochen soll schon mal etwas zu sehen sein -

Aha, Jahresprojekt. Dann muss es kaum morgen fertig sein. Und 
Verzögerungen sind normal in der Entwicklung. ;-)

>den µC zu Programmieren, das Programm auf den µC zu übertragen.
>Kann mir evtl. jemand eine Liste mit benötigten Programmen vllt. auch
>mit Links zusammenstellen?

http://www.mikrocontroller.net/articles/AVR

>bräuchte zuerst mal das Programm mit dem man oben genanntes Programm
>umschreien kann.

http://www.mikrocontroller.net/articles/AVR-Studio
http://www.mikrocontroller.net/articles/AVR-GCC

MFG
Falk
#1961727
Lesenswert?

Also wenn er schon Erfahrung mit Visual Basic und Basic für C-Control 
kennt wäre er vermutlich mit Bascom besser beraten - Tipp ich mal ohne 
jemals mit Bascom etwas gemacht zu haben.

Der nächste Punkt, wenn das Servozeugs dann vielleicht geht, wird ja 
wohl sein, daß er frägt wie er nun vom Android seine Daten auf den 2313 
übertragen kann.
Gast #1961734
Lesenswert?

>Der nächste Punkt, wenn das Servozeugs dann vielleicht geht, wird ja
wohl sein, daß er frägt wie er nun vom Android seine Daten auf den 2313
übertragen kann.
genau das ist dann das Problem
Es wird über Bluetooth übertragen
das wäre aber erst später relevant erst mal muss das Programm für den µC 
umgeschrieben werden
oder sehe ich das falsch?

Was ich vergessen habe :
was brauche ich an Hardware um das Programm auf den ATtiny zu brennen?
Gast #1961759
Lesenswert?

Alex B. schrieb:
> DENN GRADE BIN ICH BEREIT WAS ZU TUN
Soll ich dich dafür jetzt beglückwünschen?

>habe noch für Arbeiten zu lernen in denen ich nicht
>wirklich eine 6 schreiben will
Genau das wünsche ich dir.
#1961760
Lesenswert?

Alex B. schrieb:
> weil ich das Tutorial ja auch in 2 min. durhlesen kann

Das verlangt keiner.
Aber du kannst es auch erst in Stunden oder Tagen lesen, und dann
fragen, was unklar ist.
Das Tut hat jemand mit viel Mühe geschrieben, damit man nicht
jedem von Neuem alles wieder erzählen muß.
Nur du möchtest es nochmal vorgelesen bekommen?

Das Forum ist nicht dazu da, um alles zu immer wieder zu beantworten,
was man auch selber herausfinden kann.

Sagst du Bescheid, wenn wir mit Klopapier kommen dürfen, um
dir den A... abzuwischen?


Nochmal zu Mitschreiben:
Das hier ist kein Service für faule Säcke, die sich weigern,
Grundlagen zu lernen.
Wenn du es nicht schaffst, die elementaren Sachen zu lesen,
auf die man dich mehrfach mit der Nase drauf stößt, ist eine
6 noch zu gut. Das musst du dann halt akzeptieren.
Gast #1961785
Lesenswert?

Peter schrieb:
> Alex B. schrieb:
>> die Fehlermeldungen kommen schon früher ...
>> und zwar beim versuch das Programm zu starten
> und wir sollen jetzt Raten welche Fehlermeldungen es sind?

die kopier ich jetzt nicht alle ich werd sie in google selber suchen 
oder so aber das sind mindestens 6

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