Arrays in FastAVR deklarieren und benutzen

Gast #32165
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
Gast #32167
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!
Gast #32169
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...
Gast #32171
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...
Gast #32172
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;
Gast #32174
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?
Gast #32175
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
Gast #32176
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
Gast #32177
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.
Gast #32178
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?
Angehängte Dateien:

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