Forum: Mikrocontroller und Digitale Elektronik Programmierung eines Stylophones in Assember. Wer kann helfen?


von Wadim W. (s-a-j-e-z)


Angehängte Dateien:

Lesenswert?

Hallo,
Vorerst, ich bin ein absoluter noob in Assembler Programmierung.
Habe eine Aufgabe bekommen einen Stylophon zu Programmieren. Ich denke 
mal das es für geübte Assembler Programmierer keinen großen Aufwand 
darstellt. Wer kann mir da bitte helfen?.Ist echt dringend...
Bin für jede Hilfe dankbar. =)

(Die Aufgabenstellung ist im Anhang)

von troll (Gast)


Lesenswert?

WTF ist ein Stylophon? .doc ist schon mal kacke.

Aber egal, wir sind hier nicht das wir-machen-eure-Hausaufgaben-Forum.

Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"

von troll (Gast)


Lesenswert?

Und noch was Konstruktives damit der Mod nicht meckert: 
http://www.mikrocontroller.net/articles/AVR-Tutorial durcharbeiten!

von troll (Gast)


Lesenswert?

troll schrieb:
> Und noch was Konstruktives damit der Mod nicht meckert:
> http://www.mikrocontroller.net/articles/AVR-Tutorial durcharbeiten!

Kannst du vergessen, die Aufgabe ist ja für nen PIC. Guckst du 
stattdessen bei sprut.

von fonsana (Gast)


Lesenswert?

troll schrieb:
> Kannst du vergessen, die Aufgabe ist ja für nen PIC. Guckst du

Nicht mal das hat sie/er ja im Ursprungspost erwaehnt.

fonsana

von cool (Gast)


Lesenswert?

Ich würde das mit einem Programmgenerator lösen.

von cool (Gast)


Lesenswert?

Wadim W. schrieb:
> Hallo,
> Vorerst, ich bin ein absoluter noob in Assembler Programmierung.

Noob steht für:
 einen Neuling, meist bei Online-Spielen, der als lernunwillig 
erscheint.

Welche Spiele kannst du denn schon?

von Bronco (Gast)


Lesenswert?

Für Leute ohne Assembler- und µC-Erfahrung ist aber eine nicht ganz 
triviale Aufgabe.
Da würde mich doch mal der Hintergrund interessieren (Schule, Studium)?

von Wadim W. (s-a-j-e-z)


Lesenswert?

Ich Spiele überhaupt nicht =)..Zeitverschwendung sowas..
Bin gelernter Elektroniker und zurzeit Studiere ich Elektrotechnik
Bin zurzeit im Auslandsemester in UK..
Mit E-Technik komm ich gut klar...Nur das Programmieren von 
Mikrocontrollern ist für mich ein Rätzel...zumindest was Assembler 
angeht..

Sorry..vergessen zu erwähnen das es für PIC ist..
Wir programmieren hier mit MPLab..

Welche Art von Programmgenerator meinst du?..

von Karl H. (kbuchegg)


Lesenswert?

http://de.wikipedia.org/wiki/Stylophone

Ach, DAS nennt sich Stylophone!

Das ist ja nichts anderes, als eine mit Widerständen aufgebauter n-fach 
Spannungsteiler wobei der Abgriff auf einen ADC geht und dementsprechend 
einen Oszillator ansteuert.

Erinnert mich frappant an Elekors-Chorosynth aus den 70-er/80-er Jahren. 
Nur dass man damals mit einem 555 die Tonerzeugung gemacht hat.

@TO
Na ja.
Welche Teile kannst du denn selber machen?

von Bronco (Gast)


Lesenswert?

Wadim W. schrieb:
> Mit E-Technik komm ich gut klar...Nur das Programmieren von
> Mikrocontrollern ist für mich ein Rätzel...zumindest was Assembler
> angeht..

Dann ist das eine Aufgabe aus dem Studium?
Wenn ja, müßtest Ihr doch eigentlich eine Vorlesung, Übung, Labor o.ä. 
zu dem Thema gehabt haben?
Ich wage mal zu behaupten, daß Du schon gewisse Grundkenntnisse in µC 
und Assember benötigst, um die Aufgabe zu meistern.

von Peter D. (peda)


Lesenswert?

2.  Experiment with the delay routine in `1.' to establish frequencies 
for all the other notes.


Arrgh.
Wer kommt denn auf so ne unsinnige Idee?
Frequenzen erzeugt man doch mit einem Timer.

Und man experimentiert auch nicht umständlich rum.
Man schreibt die Formeln für die Frequenzen hin und läßt sie vom 
Compiler ausrechnen.


Peter

von Martin K. (maart)


Lesenswert?

Ach Peter, jetzt sei doch nicht so professionell.
Vielleicht geht es bei der Aufgabe auch nur darum, sich mit MPLAB und so 
weiter vertraut zu machen.

von Karl H. (kbuchegg)


Lesenswert?

Peter Dannegger schrieb:

> Arrgh.
> Wer kommt denn auf so ne unsinnige Idee?
> Frequenzen erzeugt man doch mit einem Timer.


Jeder muss mal irgendwo anfangen.
Und mit einer Handvoll bekannter Mnemnonics ist es gar nicht so einfach, 
Übungensaufgaben zu erfinden, die nicht fad sind und bei denen der 
Lernende was programmiert, das dann auch nachher irgendetwas tut. Jeder, 
der schon mal eine Klasse bei Laune halten und sie animieren musste was 
zu programmieren, kennt das Problem: Du hast nach der ersten oder 
zweiten UNterrichtsstunde nicht viel an Wissen zur Verfügung, musst aber 
mit deinen Jungs üben und irgendwas machen, damit sie was tun. Der eine 
lässt halt LED blinken, der andere schiebt eine Membrane hin und her.

Das er es später mal anders machen wird, steht auf einem anderen Blatt.

von Peter D. (peda)


Lesenswert?

Hier mal das Prinzip für nen AVR ATtiny24 (PIC kann ich nicht):
1
#include <avr/interrupt.h>
2
3
#define F_CPU   8e6       // 8MHz
4
5
#define C4      261.626
6
#define D4      293.665
7
#define E4      329.628
8
#define F4      349.228
9
#define G4      391.995
10
#define A4      440.000
11
#define B4      493.883
12
#define C5      523.251
13
14
#define TIME(x) F_CPU / x / 2
15
16
void play_sound()
17
{
18
  if( PINA & 1<<0 )
19
    OCR1A = TIME( C4 );
20
  else if( PINA & 1<<1 )
21
    OCR1A = TIME( D4 );
22
  else if( PINA & 1<<2 )
23
    OCR1A = TIME( E4 );
24
  else if( PINA & 1<<3 )
25
    OCR1A = TIME( F4 );
26
  else if( PINA & 1<<4 )
27
    OCR1A = TIME( G4 );
28
  else if( PINA & 1<<5 )
29
    OCR1A = TIME( A4 );
30
  else if( PINA & 1<<6 )
31
    OCR1A = TIME( B4 );
32
  else if( PINA & 1<<7 )
33
    OCR1A = TIME( C5 );
34
  else{
35
    TIMSK1 = 0;         // tone off
36
    return;
37
  }
38
  TIMSK1 = 1<<OCIE1A;   // tone on
39
}
40
41
ISR( TIM1_COMPA_vect )
42
{
43
  PORTB ^= 1<<0;        // PB0 = output
44
}

Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.