Gast
#32162
Hallo, wie kann ich ein eindimensionales Array mit 8 Elementen in FastAVR deklarieren und benutzen? Danke!
|
Anzeige
|
Arrays in FastAVR deklarieren und benutzen
Gast
#32162
Hallo, wie kann ich ein eindimensionales Array mit 8 Elementen in FastAVR deklarieren und benutzen? Danke!
Gast
#32163
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
Gast
#32164
@Benjamin, lass uns doch mal austauschen bezüglich FASTAVR, ich habe noch nicht viele User gefunden... Gruss A. Arndt
Gast
#32165
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
#32166
Hallo, soweit bim ich noch nicht fortgeschritten, hoffe aber auch auf deutsche Anleitung für FASTAVR... Gruss A. Arndt
Gast
#32167
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
#32168
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
Gast
#32169
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
#32170
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...
Gast
#32171
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
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
#32173
Bascom bläht aber den Maschinencode zu stark auf -> Viele unnötige Dinge stehen dort drin.
Gast
#32174
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
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
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
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
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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|