Ist es möglich unter Bascom einen 2313 dem A.1 einen virtuellen D.7 zuzuweisen um ihn gemeinsam mit den anderen D´s anzusprechen?
Fetti schrieb: > Ist es möglich unter Bascom einen 2313 dem A.1 einen virtuellen D.7 > zuzuweisen um ihn gemeinsam mit den anderen D´s anzusprechen? Ich weiß nicht, ob ich es richtig verstanden habe. Als Beispiel habe ich ein Variable namens "Alfred" vom Typ Byte angelegt. Darin kann ich jedes Bit einzeln dem Inhalt des Port B zuweisen. Ich habe auch noch eine Bitvariable namens "D7" erstellt und der den Wert von PortB.3 zugewiesen. Das geht tadellos. Ich benutze das, um mir aus diversen Variablen einzelne Bits zu holen und sie dann neu zusammenzusetzen. Das erspart mir einen Haufen Ver-Undungen oder Ver-Oderungen. $regfile = "m8def.dat" 'ATmega8 $crystal = 8000000 $ '8 MHz $hwstack = 40 $swstack = 40 $framesize = 40 $baud = 19200 Dim Alfred As Byte Dim D7 As Bit Config Portb = Output Alfred.0 = Portb.0 Alfred.1 = Portb.1 Alfred.2 = Portb.2 D7 = Portb.3
Thomas der Bastler schrieb: > was sagt der Compiler ? Was soll der sagen? Nichts -denn es ist ja syntaktisch richtig. ´Wenn Du nicht so bequem wärest, hättest Du das selbst ausprobieren können! Paul
Mein Probblem ist folgendes: Habe folgendes vom 8515 portiert, eine dot matrix. funktioniert super, nur den A.1 kriege ich nicht integriert, wobei er separat angesprochen (sprich columns über porta) durchaus funktioniert. Daher schwebte mir etwas wie portd.7 alias porta.1 vor. läßt sich compilieren, hat aber keinen effekt. '----------------------------------------------------------------------- ------------------ 'copyright : (c) 2008-2007, AVRprojects.info 'purpose : Dot Matrix '----------------------------------------------------------------------- ------------------ $regfile = "attiny2313.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency Declare Sub Load_data Declare Sub Swift_data Rows Alias Portb Cols Alias Portd Config Rows = Output Config Cols = Output Config Timer0 = Timer , Prescale = 8 Dim A As Integer Dim Temp As Byte Temp = 0 Dim Tdata1 As Byte Dim Tdata2 As Byte Dim Tdata3 As Byte Dim Tdata4 As Byte Dim Tdata5 As Byte Dim Tdata6 As Byte Dim Tdata7 As Byte Dim Tdata8 As Byte On Timer0 Disps: Enable Interrupts Enable Timer0 Do Restore Happy Load_data Waitms 300 Restore Happy2 Load_data Waitms 100 Restore Happy3 Load_data Waitms 100 Restore Happy2 Load_data Waitms 300 Restore Moshpit Load_data For A = 1 To 64 Swift_data Waitms 300 Next Loop Disps: Temp = Temp + 1 Select Case Temp Case 1 : Rows = Tdata1 Cols = &H01 Case 2 : Rows = Tdata2 Cols = &H02 Case 3 : Rows = Tdata3 Cols = &H04 Case 4 : Rows = Tdata4 Cols = &H08 Case 5 : Rows = Tdata5 Cols = &H10 Case 6 : Rows = Tdata6 Cols = &H20 Case 7 : Rows = Tdata7 Cols = &H40 Case 8 : Rows = Tdata8 Cols = &H80 Temp = 0 End Select Return Sub Load_data() Read Tdata1 Read Tdata2 Read Tdata3 Read Tdata4 Read Tdata5 Read Tdata6 Read Tdata7 Read Tdata8 End Sub Sub Swift_data() Tdata1 = Tdata2 Tdata2 = Tdata3 Tdata3 = Tdata4 Tdata4 = Tdata5 Tdata5 = Tdata6 Tdata6 = Tdata7 Tdata7 = Tdata8 Read Tdata8 End Sub End Happy: Data &B10100000 , &B01010000 , &B00101100 , &B11010010 , &B00010010 , &B00001100 , &B00000001 , &B00000000 , &B00000000 , Happy2: Data &B10100000 , &B01010110 , &B00101001 , &B11001001 , &B00000110 , &B00000010 , &B00000001 , &B00000000 , &B00000000 , Happy3: Data &B10100000 , &B01010000 , &B00100000 , &B11011000 , &B00100100 , &B00100100 , &B00011001 , &B00000000 , &B00000000 , Moshpit: Data &B11111111 , &B11111111 , &B00000111 , &B00001110 , &B00001110 , &B00000111 , &B11111111 , &B11111111 , &B00000000 Data &B00111100 , &B01111110 , &B11100111 , &B11000011 , &B11000011 , &B11100111 , &B01111110 , &B00111100 , &B00000000 Data &B11001110 , &B11011111 , &B11011011 , &B11011011 , &B11011011 , &B11011011 , &B11111011 , &B01110011 , &B00000000 Data &B11111111 , &B11111111 , &B00011000 , &B00011000 , &B00011000 , &B00011000 , &B11111111 , &B11111111 , &B00000000 Data &B11111111 , &B11111111 , &B00011011 , &B00011011 , &B00011011 , &B00011011 , &B00011111 , &B00001110 , &B00000000 Data &B11000011 , &B11000011 , &B11000011 , &B11111111 , &B11111111 , &B11000011 , &B11000011 , &B11000011 , &B00000000 Data &B00000011 , &B00000011 , &B00000011 , &B11111111 , &B11111111 , &B00000011 , &B00000011 , &B00000011 , &B00000000 DATA &B00000000, &B00000000, &B00000000, &B00000000, &B00000000, &B00000000, &B00000000, &B00000000, &B00000000
Port A.1 ist doch der Quarzanschluß. Hast Du da einen Quarz dran, oder ist der frei? Wenn er frei ist, dann mußt Du nur den PortA.1 als Output deklarieren: Config PortA.1 = Output Und dann noch PortD.7 (der ja leider nicht nach draußen gelangt) auf PortA.1 rausjagen: PortA.1 = PortD.7 Kompilieren läßt sich das: $regfile = "attiny2313.dat" $crystal = 8000000 $ '8 MHz $hwstack = 40 $swstack = 40 $framesize = 40 $baud = 19200 Dim Alfred As Byte Dim D7 As Bit Config Portb = Output Config Portd = Output Config Porta.1 = Output Alfred.0 = Portb.0 Alfred.1 = Portb.1 Alfred.2 = Portb.2 D7 = Portb.3 Porta.1 = Portd.7 Ich kann es nicht in Natura ausprobieren, weil ich nicht da bin, wo das freundliche Steckbrett ist, bin aber sicher, das schon so gemacht zu haben. mfG Paul
Hab klar keinen Quarz dran, hab es jetzt folgendermaßen (ohne Effekt) Porta.0 ist der betreffende, mein Fehler Verstehe nicht, wie ich die Alfreds in meine Columns integrieren soll. Rows Alias Portb Cols Alias Portd Config Rows = Output Config Porta.0 = Output Config Cols = Output Config Timer0 = Timer , Prescale = 8 Porta.0 = Portd.7 Dim A As Integer Dim Temp As Byte Temp = 0 Dim Tdata1 As Byte Dim Tdata2 As Byte Dim Tdata3 As Byte Dim Tdata4 As Byte Dim Tdata5 As Byte Dim Tdata6 As Byte Dim Tdata7 As Byte Dim Tdata8 As Byte
Fetti schrieb: > Verstehe nicht, wie ich die Alfreds in meine Columns integrieren soll. Das war nur ein Beispiel, weil nicht genau erkennbar war, wie es werden sollte. Das muß mit in die Schleife rein, nicht oben bei der Initialisierung: Porta.0 = Portd.7 Probier das aml aus. mfG Paul
Hallo, Fetti schrieb: > Disps: > Temp = Temp + 1 > > Select Case Temp > Case 1 : > Rows = Tdata1 > Cols = &H01 > Case 2 : > Rows = Tdata2 > Cols = &H02 > Case 3 : > Rows = Tdata3 > Cols = &H04 > Case 4 : > Rows = Tdata4 > Cols = &H08 > Case 5 : > Rows = Tdata5 > Cols = &H10 > Case 6 : > Rows = Tdata6 > Cols = &H20 > Case 7 : > Rows = Tdata7 > Cols = &H40 > Case 8 : > Rows = Tdata8 > Cols = &H80 > Temp = 0 > End Select > Return Cols gibt ja nur Daten an PortD aus (Cols alias PortD). Ändere mal die Timer0 ISR Case 8 : Rows=Tdata8 PortA.0=&H01 Temp=0 End select Da in Cols bei &H80 ja nur das 7. Bit gesetzt ist, weist du das jetzt dem Pin PA.0 zu. "Versuch macht kluch" ! deka65
Dann kommt ein storebit error. Irgendwie scheint die Verknüpfung zwischen a.0 und den Columns noch zu fehlen. Kann man das alias der Columns noch irgendwie ausweiten?
Hallo, Sorry :(( Pin A.0 kann ja nur ein Bit sein. Also PortA.0=1 Da aber beim nächsten Interrupt der Pin wieder 0 sein muß, ist es besser eine If - Then Anweisung zu machen. Beisp. Temp=Temp + 1 if Temp < 8 Then portA.0=0 endif Case = 1 . . . case = 8 "Versuch macht kluch " ! deka65
Detlef Kahrmann schrieb: > Temp=Temp + 1 > if Temp < 8 Then > portA.0=0 > endif > > Case = 1 > . > . > . > case = 8 Warum so kompliziert? Im Case 8 setzt man PA0 und in Case 1 wieder zurück.
Hallo, MWS schrieb: > Warum so kompliziert? Im Case 8 setzt man PA0 und in Case 1 wieder > zurück. und warum fällt dir das erst jetzt ein ? das hättest du auch 4 Beiträge vorher schreiben können. hast aber Recht ,das ist dann finetuning. deka65
Jo, klappt beides. Beides hat leider auch geringfüfige Verzerrungen bei Laufschriften zur Folge. Liegt das an der unterschiedl. Beschaffenheit der Ausgänge?
Detlef Kahrmann schrieb: > und warum fällt dir das erst jetzt ein ? > das hättest du auch 4 Beiträge vorher schreiben können. Das liegt daran, dass ich nicht wie Schnappi hier sitze, um neue Threads umgehend zu beantworten. Ich würd's auch nicht als Feintuning bezeichnen, in diesem Fall einfach als logische Konsequenz, um nicht überflüssigen Code zu erzeugen.
Fetti schrieb: > Jo, klappt beides. Beides hat leider auch geringfüfige > Verzerrungen bei > Laufschriften zur Folge. Liegt das an der unterschiedl. Beschaffenheit > der Ausgänge? Du musst in Case 8 die Cols auf 0 setzen, das ist Dir schon klar?
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.