Hallo, wie kann ich ein eindimensionales Array mit 8 Elementen in FastAVR deklarieren und benutzen? Danke!
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
@Benjamin, lass uns doch mal austauschen bezüglich FASTAVR, ich habe noch nicht viele User gefunden... Gruss A. Arndt
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
Hallo, soweit bim ich noch nicht fortgeschritten, hoffe aber auch auf deutsche Anleitung für FASTAVR... Gruss A. Arndt
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!
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
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...
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...
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...
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;
Bascom bläht aber den Maschinencode zu stark auf -> Viele unnötige Dinge stehen dort drin.
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?
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
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
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.