hallo Ich will 64 LEDs mit 8 SRs steuern. Diese hängen kaskadiert am Software-SPI des uC(siehe Tutorial dazu hier auf uC.net) Jetzt würde ich gern mal meine Herangehensweise erläutern. Ich programmiere das dann mit Bascom. ich wollte zunächst alle 64 leds blinken lassen Start: Laden von Variable Test mit Umfang von zwei Byte mit HEX:FF Senden von Test über SPI-Bus (8x insgesamt, damit 64 rauskommen->mittels FOR-Schleife) Reset von RCK Setzen von RCK Zuweisung von HEX:00 an Test Wieder das Senden über SPI mittels FOR-Schleife Reset von RCK Setzen von RCK Ende: Und diese 2 Operationen werden natürlich kontinuierlich in einer While(1)-Schleife ausgeführt. Zwischen den einzelnen SPI-Befehlen noch etwas Delay und man hat ein schönes Blinklicht, möchte man meinen. Doch Nix gibts! Die Kiste macht nur Unfug. Deswegen wollt ich von euch gern wissen, ob das prinzipielle Herangehen so korrekt ist. Vielen Dank
Da kommt keiner draus. Ist wohl die Beschriebung der BASCOM User... >ich wollte zunächst alle 64 leds blinken lassen >Start: >Laden von Variable Test mit Umfang von zwei Byte mit HEX:FF >Senden von Test über SPI-Bus (8x insgesamt, damit 64 rauskommen->mittels >FOR-Schleife) Wen ich richtig zähle.. nach deiner Beschreibung schreibst du 128 bits raus.. Test: Umfang von zwei Byte -> 16 bit 8 mal senden von Test = 8 * 16 = 128 Befass dich doch mal mit den Grundlagen: bit Byte Integer(16 bit) Long(32 bit)
Ja bei einem Byte 8x und bei 2en 4x Ich hatte beim Schreiben des Threads noch was geändert und dann vergessen das anzupassen. Aber das ist doch Krümelkackerei, es geht mir in erste Linie darum festzustellen, wo genau der Fehler liegt.
Johannes Hofmann wrote:
> Doch Nix gibts! Die Kiste macht nur Unfug.
Und das heißt?
Zeig dochmal den Schaltplan und das Programm.
Das 8 Byte Schieben und RCK takten würde ich als Unterprogramm machen.
Peter
hier sind sie schon: die 2 im Spiout-Befehl gibt an, wieviele Bytes er senden soll
1 | $regfile = "ATtiny2313.dat" |
2 | $crystal = 8000000 'Takt: 8 MHz |
3 | $baud = 9600 |
4 | |
5 | |
6 | Config Spi = Soft , _ |
7 | Din = Pind.7 , _ |
8 | Dout = Portb.5 , _ |
9 | Ss = None , _ |
10 | Clock = Portd.2 |
11 | |
12 | Spiinit |
13 | |
14 | |
15 | Ddrb = &B10111111 |
16 | |
17 | Ddrd = &B01100100 |
18 | Portb = &B00011111 |
19 | |
20 | |
21 | Dim Array_index As Byte |
22 | |
23 | Dim Test1 As Word |
24 | Test1 = &HFF |
25 | |
26 | Dim Test2 As Word |
27 | Test2 = &H00 |
28 | |
29 | |
30 | Rck Alias Portd.5 |
31 | |
32 | |
33 | Do |
34 | |
35 | For Array_index = 1 To 8 |
36 | Spiout Test1 , 2 |
37 | Next |
38 | Reset Rck |
39 | Set Rck |
40 | Reset Rck |
41 | |
42 | Waitms 200 |
43 | |
44 | For Array_index = 1 To 8 |
45 | Spiout Test2 , 2 |
46 | Next |
47 | |
48 | Reset Rck |
49 | Set Rck |
50 | Reset Rck |
51 | |
52 | Waitms 200 |
53 | |
54 | Loop |
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.