Wie willst du (falls du das planst) den Font einbauen?
Ich bin mal gespannt ob wir nich das drehende IC zu sehen kriegen, aber dafür habe ich wohl in Mathe nicht genug aufgepasst *grins*
Druckbare Version
Wie willst du (falls du das planst) den Font einbauen?
Ich bin mal gespannt ob wir nich das drehende IC zu sehen kriegen, aber dafür habe ich wohl in Mathe nicht genug aufgepasst *grins*
wenn ihr das in winavr-c proggen tut, geht es wesentlich schneller.
es ist schade um die arbeit wenn ihr es in bascom umsetzt.
euro routinen sind klug erdacht, werden aber wieder durch das langsame bascom versaubeutelt. aus eurer kategorie heraus erwarte ich eigentlich winavr-c.
mfg pebisoft
Hallo,
das Bascom nicht unbedingt langsamer ist als C wurde hier im forum glaube ich schonmal bewiesen. Leider haben hier einige (ICH übrigens auch) gar keine Erfahrung mit C und wollen es evtl auch gar nicht? (finde Pascal und Basic wesentlich angenehmer zu lesen)
Wenn dir der Beitrag hier nicht passt, werde ich ihn von Frank verschieben lassen.
Achja ich möchte eigentlich das aufkommen von diskussionen vermeiden, die nicht zum Thema gehören. Habe das schon oft beobachtet (auch bei mikrocontroller.net) das einige leute sachen posten die nicht zum eintrag gehören, was ich nicht sehr angenehm finde, und die auch besonders bei langen threads oft verwirren.
Hallo,
Also es geht weiter !
Das mit den Objekten ging viel einfacher als ich erwartet hatte.
ich musste allerdings leider das Programm ziemlich umbauen,
weil es wegen der ständigen Herumschieberei der Variablen
so gebremst wurde, das es schon zu Flimmern anfing.
Ich hab wieder auf globale Vars umgestellt. Sorry :-(
Aber dafür bewegen sich jetzt schon zwei Objekte
schön flüssig über den Oszi-Schirm. :-)
Probier es mal aus.
Z-Achse hab ich immer noch "ausgeblendet"
Gruß Jan
Code:
$regfile = "m32def.dat"
$crystal = 16000000
'######### Variablen Hauptprogramm
Dim H As Integer
Dim Hs As Integer
Dim Ss As Byte
'########### Variablen Vektorgrafik
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim Xa As Integer
Dim Ya As Integer
Dim Xe As Integer
Dim Ye As Integer
Dim Xs As Integer
Dim Ys As Integer
Dim T as integer
'########### Deklarationsteil für Subroutinen
Declare Sub Moverel
Declare Sub Moveabs
Declare Sub Drawrel 'Zeichnet vom aktuellen Punkt zur relativen position eine linie
Declare Sub Drawabs 'Zeichnet vom aktuellen Punkt zu den angegebenen kordinaten eine linie
Declare Sub Showdot
Declare Sub Drawobj
'########### Deklarationsteil für Ports
Xp Alias Porta
Yp Alias Portc
Zp Alias Portf.1 'wenn f=0 dann ist der punkt sichtbar, wenn f=1 then ist der punkt aus
Config Xp = Output
Config Yp = Output
'################# Start Hauptprogramm
'Zp = 1 ' dunkel
H = 0
Hs = 1
Ss = 0
Do
X = 50 : Y = 50 : Call Moveabs
X = 100 : Y = 0 : Call Drawrel
X = 0 : Y = 100 : Call Drawrel
X = -100 : Y = 0 : Call Drawrel
X = 0 : Y = -100 : Call Drawrel
Xa = 50 : Ya = 150 : X = 100 : Y = 200 : Call Drawabs
Xa = 150 : Ya = 150 : X = 100 : Y = 200 : Call Drawabs
Xa = 50 : Ya = 150 : X = 150 : Y = 50 : Call Drawabs
Xa = 50 : Ya = 50 : X = 150 : Y = 150 : Call Drawabs
X = 0 : Y = 0 : Call Moveabs
Restore Obj5 : X = 60 : Y = 80 : Call Drawobj
Restore Obj5 : X = 130 : Y = 80 : Call Drawobj
H = H + Hs
If H = 200 Then Hs = -1
If H = 0 Then Hs = 1
Restore Obj5 : X = 20 : Y = H : Call Drawobj
Ss = Ss + 1
Restore Spaceship : X = Ss : Y = 170 : Call Drawobj
Loop
End
'################# Ende Haputprogramm; beginn subroutinen
Sub Drawabs
X = X - Xa : Y = Y - Xa
Xp = Low(xa) : Yp = Low(ya)
Call Drawrel
End Sub
'#################################
Sub Drawrel
Xe = Xa + X : Ye = Ya + Y
Xs = 1 : Ys = 1
If X < 0 Then
Xs = -1 : X = 0 - X
End If
If Y < 0 Then
Ys = -1 : Y = 0 - Y
End If
If X < Y Then Goto Walky
Walkx:
T = X
Shift T , Right , 1
Do
'Zp = 0
Xp = Xa : Yp = Ya
Xa = Xa + Xs ':immer einen Schritt in x-Richtung weiter
T = T - Y ';Schritt in Y-Richtung nötig ?
If T <= 0 Then ';wenn <=0 dann ja
T = T + X ';
Ya = Ya + Ys ';Schritt in Y-Richtung
End If
Loop Until Low(xa) = Low(xe) ';Wiederholen bis Ende der Linie
'Zp = 1
Goto Ex1
Walky:
T = Y
Shift T , Right , 1
Do
'Zp = 0
Xp = Xa : Yp = Ya
Ya = Ya + Ys ':immer einen Schritt in x-Richtung weiter
T = T - X ';Schritt in Y-Richtung nötig ?
If T <= 0 Then ';wenn <=0 dann ja
T = T + Y ';
Xa = Xa + Xs ';Schritt in Y-Richtung
End If
Loop Until Low(ya) = Low(ye) ';Wiederholen bis Ende der Linie
'Zp = 1
Ex1:
End Sub
'##############################
Sub Moveabs 'Bewegt den punkt gedimmt zu der angegebenen position (x,y)
Xa = Low(x) 'Xaktuell setzen
Ya = Low(y) 'Xaktuell setzen
Xp = Low(x) 'Xport setzen
Yp = Low(y) 'yPort setzen
End Sub
'##############################
Sub Moverel
Xa = Xa + X : Ya = Ya + Y
End Sub
'##############################
Sub Showdot 'zeigt den punkt an seiner aktuellen position an
'Zp = 0 'licht ein
Waitus 2 'kurz warten
'Zp = 1 'lichtwieder aus
End Sub
'##############################
Sub Drawobj
Call Moveabs
Do
Read X : Read Y : Read Z
If Z > 0 Then Call Drawrel Else Call Moverel
Loop Until Z > 1
End Sub
'######## Objektdefinitionen
'X, Y, Z
'X, Y, Z
'X und Y sind relative Positionen
'z=0 bedeutet moverel
'z=1 bedeutet sichtbare Linie
'Ende Objekt ist wenn z=3
Spaceship:
Data 15% , 8% , 1%
Data -15% , 8% , 1%
Data 6% , -8% , 1%
Data -6% , -8% , 1%
Data 4% , 8% , 0%
Data -5% , 3% , 1%
Data 5% , -3% , 1%
Data -5% , 0% , 1%
Data 5% , 0% , 1%
Data -5% , -3% , 1%
Data 5% , 3% , 3%
Obj5:
Data 5% , 0% , 1%
Data 5% , 5% , 1%
Data 0% , 5% , 1%
Data -5% , 5% , 1%
Data -5% , 0% , 1%
Data 0% , 10% , 1%
Data 10% , 0% , 3%
@Pebisoft:
Hallo Peter,
schön, das du dich auch dafür interessierst.
Warum machst du nicht mit, und steuerst auch
ein paar hilfreiche Ideen dazu bei,
um die Sache voranzubringen ?
Als nächstes möchten wir Objekte drehen und skalieren können.
Hast du da einen Vorschlag für, wie man das machen könnte ?
Gerne auch in C.
Gruß Jan
Hallo,
ich denke das das so passt mit Z... (spart jedes mal ein bisschen zeit) man kann ja den anschluss lassen, und nur wenn man es nicht anders vermeiden kann ausblenden.... Habe noch ein altes RFT oszi wo der vorbesitzer ganzganz schlecht mit umgegangen ist... wenn das hier schön läuft, werde ich die röhre und den trafo nehmen und mal schauen was man vielleicht stand alone anrichten kann. melde mich dann wenn die software läuft.
@jan: Wie machst du die objekte - im kopf??
hallo, ich habe ein projekt mit einem fernseher (15cm) 12volt, habe horizontale und vertikale steuerung abgeklemmt und die strahlausschaltung. bei mir auf dem arbeitstisch steht nur die bildröhre, die ich im rahmen befestigt habe. man kann auch schön die frequenz mit pwm simulieren.
habe alle anschlüsse an der röhre steckbar gemacht. steuere die beiden jetzt über einen avr an und einem verstärkungstransistor. die endausschläge des strahls brauchen ca 12 volt. kann den strahl nach rechts nach links nach oben und nach unten schicken. schalte ihn ein wenn er leuchten muss oder auch nicht. eine einfache und günstige lösung. es funktioniert genauso wie auf dem scope. eine schöne experimentielle grundlage auch für diejenigen, die sich kein scope leisten können. die kleinen fernseher mit 12v netzteil bekommt man/frau bei ebay schon für 15 euro. mfg pebisoft
Also das prog läuft soweit. Habe Z erstmal drin gelassen, weil wenn man nur das shiffchen und die 5 bewegt (mit 10ms pause) dann prennt der eine punkt doch schon ganz schön... Da das nun funktioniert, wäre ein font echt geil, meinst du einstrich font oder so jeder character mit nem rahmen zu zeichnen sieht besser aus??
Hallo phebisoft, sorry für den etwas garstigen eintrag von mir gestern. War warscheinlich überreagiert.. Mit dem TV ist echt ne geile idee, was mich interessiert ist, pfeifft der trafo in den dingern immernoch so erbärmlich, wie bei dem, den ich mir vor 10 jahren mal gekauft habe?
zur zeit arbeite ich am cmu2cam projekt und am gameboycam projekt im zusammenhang mit video-capture, übertragen der bilder seriell zum pc, daten als ton-frequenz vom avr über video/audio-funk vom robby zum pc und den ton auswerten und umwandeln in daten. objekterkennung mit einem gegrabten video-bild von einer lifeübertragung und objekterkennung an einem seriell übertragenen bild.
also zur zeit ausgelastet.
mfg pebisoft