PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauch Hilfe in nem small proggie



molleonair
06.07.2006, 20:23
Hallo leute also ich steh aufm schlauch

Also der folgende code compiliert mit fehlermeldung die ich nicht versteh


$regfile = "m32def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40

Config Porta = Output
Config Portd.2 = Input
Config Portd.3 = Input
Config Portb.2 = Input
Inter0 Alias Portd.2
Daten Alias Portd.3
Clock Alias Portb.2

Dim Spannung As Byte

Declare Function Liesdaten As Byte

On Int0 Datenlesen
Enable Int0
Enable Interrupts

Do
Wait 1
Print "Spannung = " ; Spannung
Porta = Spannung
Loop

Datenlesen:
Spannung = Liesdaten
Return

Function Liesdaten As Byte
Local Tinydat As Byte
Shiftin Daten , Clock , Tinydat , 5
Liesdaten = Tinydat
End Function


Das programm soll bei auslösen von INT0 ein byte mit shiftin von einem tiny26 einlesen und per rs232 ausgeben
Was passt mit den datentypen da nicht ? ich will in die bytevariable spannung das byte der function liesdaten

PicNick
06.07.2006, 20:44
$hwstack = 32 ' bei Interrupt mehr z.B. ~48
$swstack = 10 ' bei functionsaufrufen mehr z.B ~64
$framesize = 40

probier mal. Ist wahrscheinlich etwas mehr, als du brauchst, aber zu wenig ist tödlich

Und : Mußt du den Int0 nicht configurieren ? rising /falling etc ?

molleonair
06.07.2006, 21:21
Danke PicNick
du lagst wiedermal richtig
int0-int3 sind standartmäßig als lowlevel konfiguriert das ist für mich so ok

sag mal kannst du das mit den stack und frame größen mal grob umschreiben
was für was da ist.
ich hab mir zwar die hilfe durschgelesen aber war mir zu hoch

Danke


ha zu früh gefreut

geht doch nicht brauch HILFE

molleonair
06.07.2006, 22:08
so hab mal der function ne übergabevariable a reingemacht und da gehts
obwohl ich diese überhaupt nicht benutze

Woran liegt das ???????????????
müssen Funktionen immer Übergabe variablen enthalten

$regfile = "m32def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40


Dim Spannung As Byte
Declare Function Readdat(byval A As Byte) As Byte

Spannung = Readdat(1)
print spannung
end

Function Readdat(byval A As Byte) As Byte
Local Tinydat As Byte
Shiftin Portd.2 , Portd.3 , Tinydat , 5
Readdat = Tinydat
End Function

PicNick
07.07.2006, 10:11
Morjen !

Nee, übergabe variablen müssen'se nicht haben, aber Klammer auf und zu. Die Bascom-Kollegen meinten, das sieht einfach hübscher aus. (C ist da auch nicht viel anders)
ALSO:


Declare Function Readdat ( ) As Byte

Spannung = Readdat ( )
print spannung
end

Function Readdat ( ) As Byte
Local Tinydat As Byte
Shiftin Portd.2 , Portd.3 , Tinydat , 5
Readdat = Tinydat
End Function



PS: und denk an "hwstack" und "swstack" !

molleonair
07.07.2006, 17:58
OH thats it baby

Danke nochmal PicNick , Stacks etc hab ich nach deinen Angaben übernommen

Das mit der function ist im buch echt blöd beschrieben

Gruß Molle