www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Arrays in FastAVR deklarieren und benutzen


Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann ich ein eindimensionales Array mit 8 Elementen in FastAVR 
deklarieren und benutzen?


Danke!

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ganz einfach, z.b:

....
dim n(10) as byte, i as byte 'n ist massiv aus 10 ellementen..

for i= 0 to 9
n(i)=i '  n(1)=0, n(2)=1 usw...
next i
....

ist ähnlich wie bascom, ganz bequem

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benjamin,

lass uns doch mal austauschen bezüglich FASTAVR, ich habe noch nicht 
viele User gefunden...

Gruss
A. Arndt

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit austauschen? Ich halte sehr viel von FastAVR, da er 
nahezu 1:1 den Basic Quellcode in Maschinensprache umsetzt. Der Support 
ist auch ausgezeichnet, leider fehlt mir eine deutsche Hilfedatei, so 
dass ich den Author schon x-mal irgend welche Dinge Fragen musste. (Ich 
hoffe, dass ich ihm noch nicht auf die Nerven gehe!)

Weiß du (oder irgend wer anders), wie man einen 8-Zeichen String in 8 
Arrays speichert (jedes Zeichen ein Array).

Bsp: 11011011

n(0) = 1
n(1) = 1
n(2) = 0
n(3) = 1
n(4) = 1
n(5) = 0
n(6) = 1
n(7) = 1

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

soweit bim ich noch nicht fortgeschritten, hoffe aber auch auf deutsche 
Anleitung für FASTAVR...

Gruss
A. Arndt

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie weit bist du denn? Mein Atmel macht neuerdings komische Sachen: Seit 
ich den SChieberegister an PortB angeschlossen habe, gibt er bei 
laufenden PC ein korrektes Programm aus. Wenn ich den ISP abzeihe, 
leuchtet eine Led falsch!

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

I/O-Grundlagen, uart, lcd und ds1820, i2c und eigene Board (siehe 
www.ar-Online.de).

Folgt jetzt gerade RS-485-Anbindung, Timer, Interrupts, DCF-77-Decoding

Gruss
A. Arndt

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nun ihr beide fastavr "user", was ist so schwer dran, steht alles doch 
in manual...:(

@benjamin: hier noch einmal:
....
dim bsp as byte
dim n(8) as byte
dim i as byte
....
bsp= 11011011

do
'--blabla--
...
for i=0 to 7
n(i)=bsp.i
next i
...
'--blabla--
...
loop

ist es wirklich so schwer, die doku aufzuschlagen um sich selbst zu 
bedienen? wer kein englisch kann, hat nichts beim tema mc verloren, 
oder? wer kein basic kann, sowieso...

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: in dem fall kannst du natürlich

dim n(8) as bit

statt dim n(8) as byte anwenden, falls du nur mit 1 und 0 arbeitest...

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es gibt aber auch Leute, die auch noch etwas anderes zu tun haben, als 
sich irgendwelche englische Doku durchzuackern, die einfach mal ganz 
klein anfangen wollen.

Die ganzen Informationen, die hier angefragt werden, kann man immer 
irgendwo durchlesen, also wozu die Foren ?

Richtig, damit man sich schnell austauschen kann, die Schlauen helfen 
den "Dummies" und werden dann auch zu Schlauen und helfen dann wieder 
"Dummies" usw. und usw.

Also bitte nicht so patzig und agressiv...

P.S. Es klingt härter als es gemeint ist...

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, hast natürlich recht, bitte um verzeihung; hoffe dass das beispiel 
hilft, alternativ kannst du dir auch bascom anschauen, die demo geht bis 
2k, was eigentlich (fast immer) mehr als beim fastavr ist; habe 
irgendvie das gefühl, das bascom auch besser dokumentiert ist und man 
sich viel schneller einarbeiten kann; habe schon ziemlich komplizierte 
sachen mit lcds, leds, tasten usw damit schnell fertig gemacht;

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom bläht aber den Maschinencode zu stark auf -> Viele unnötige Dinge 
stehen dort drin.

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss euch leider sagen, dass das Programm sogar so:


'''''''''''''''''''''''''''''''

Dim cnt1 As Byte, cnt2 As Byte
Dim bsp As Byte
Dim n(8) As Byte
Dim i As Byte

DDRD = &HFF
DDRB = &HFF


Do
bsp = 11011011



  n(0)=bsp.0
  n(1)=bsp.1
  n(2)=bsp.2
  n(3)=bsp.3
  n(4)=bsp.4
  n(5)=bsp.5
  n(6)=bsp.6
  n(7)=bsp.7

  For cnt1 = 0 To 8
    PORTB = 8  '8 = Clock
    PORTB = 0  '4 = Data
  Next

  Wait 2

  For cnt1 = 0 To 7
    If n(cnt1) = 1 Then
      PORTB = 12  '8 = Clock
      PORTB = 4  '4 = Data
    Else
      PORTB = 8  '8 = Clock
      PORTB = 0  '4 = Data
    End If
  Next

  Wait 1
Loop

''''''''''''''''''''''

nicht funktioniert, da das hier angezeigt wird: 11000011?

es handelt sich um ein Schieberegister, das mit Daten "beschoben" wird. 
Wie ginge das Ganze mit der Funktion set?

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das geht jetzt, aber warum funktioniert das nicht?

Dim cnt1 As Byte, cnt2 As Byte
Dim bsp As Byte
Dim n(8) As Byte
Dim i As Byte

DDRB = &HFF


Do


  n(0)=PORTD.0
  n(1)=PORTD.1
  n(2)=PORTD.2
  n(3)=PORTD.3
  n(4)=PORTD.4
  n(5)=PORTD.5
  n(6)=PORTD.6
  n(7)=PORTD.7


  For cnt1 = 0 To 7
    If n(cnt1) = 1 Then
      PORTB = 12  '8 = Clock
      PORTB = 4  '4 = Data
    Else
      PORTB = 8  '8 = Clock
      PORTB = 0  '4 = Data
    End If
  Next cnt1

  Wait 2

PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 8  '8 = Clock
PORTB = 0  '4 = Data
PORTB = 12  '8 = Clock
PORTB = 4  '4 = Data
Wait 1
Loop

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also hatte ich doch recht :))))
englisch (ausländisch) lernen und manual GUT und FLEISSIG durchlesen, 
das hilft dann, mein sohn!!!
eine frage: was würde denn passieren, wenn jeder hier seinen code 2x 
postet? einige haben nicht 20 (wie du), sondern 2000 zeilen code...
sorry, bei dir erübrigt sich jeder hinweis von sich selbst...trotzdem:
dein fehler ist doch offensichtlich; hinweis-studiere mal den 
unterschied zwischen pin- und portregister

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, du hast im Prinzip Recht, aber ich bin halt noch ein Anfänger und da 
ich aus anderen Programmierforen kenne, dass man möglichst den ganzen 
Quellcode posten soll, anstatt nur einige Passagen, habe ich das hier 
auch gemacht.

Autor: Benjamin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist eine Schaltung, die ich zum Test bebaut habe: Oben der ISP 
Anschluss, Rechts ein Schieberegister mit LEDs an den Ausgängen, an PinD 
der Parallelport des PCs.

Folgendes Problem tritt auf: Wenn ich den ISP bei laufendem PC 
angeschlossen habe und ich per Software über den LPT Port z.B. 16 sende 
(Binär, also 00001000), dann leuchten eben so die Leds (00001000). Das 
ist ja auch noch ok, aber wenn ich den ISP abziehe, leuchtet (selbst 
wenn ich 0 sende), die 128er Led und wenn ich nun wieder meine 16 sende 
entsteht folgendes Muster: 00011001, bei 8: 00110001, bei 32: 00001101, 
usw. Was ist hier das Problem?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.