lowferb
10.11.2006, 11:56
Hi liebe Experten!
Bin Anfänger und habe da ein Array mit Single gefüllt. Wenn ich auf einen Wert innerhalb der Timer_isr zugreifen möchte, erhalte ich außer bei N=1 nur noch Null-Daten(0.0), obwohl ich in meinem Programm das Array nicht mehr überschreibe. Im oberen Teil vor dem "Do" wird es richtig ausgedruckt!
'===========================================
; Buffer(Demo1) ;
';-----------------------------------------------------------------------------;
$regfile = "m16def.dat" 'für Atmega16
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
'_--------------------------------------------------------------------------
Config Timer0 = Timer0 , Prescale = 1024
On Ovf0 Tim0_isr
Dim N As Byte
'als universaler Index
Dim Abuffer(11) As Single
Dim Al As Single
Timer0 = 134
Enable Timer0
Enable Interrupts
'--------------------------------------------------------------------------
Restore Daten
For N = 1 To 11
Read Al
Abuffer(n) = Al
Print "ABUFFER= " ; Abuffer(n) ; " ";
Next
Start Timer0
Do
'irgendwas
Loop
End
'================================================= ============
Tim0_isr:
!pop R24
Timer0 = 134
Print "abuffer(2)= " ; Abuffer(2) ; " ";
'Print "N = " ; N ; " ";
!push R24
Return
'Datenteil (abuffer) anlegen
Daten:
Data -0.001919! , 0.020396! , 0.006609! , -0.092751! , -0.005412! ,
Data 0.141029! , -0.005412! , -0.092751! , 0.006609! , 0.020396! , -0.001919!
'===========================================
Kann mir jemand erklären, woran das liegt?
vln Dank
lowferb
Bin Anfänger und habe da ein Array mit Single gefüllt. Wenn ich auf einen Wert innerhalb der Timer_isr zugreifen möchte, erhalte ich außer bei N=1 nur noch Null-Daten(0.0), obwohl ich in meinem Programm das Array nicht mehr überschreibe. Im oberen Teil vor dem "Do" wird es richtig ausgedruckt!
'===========================================
; Buffer(Demo1) ;
';-----------------------------------------------------------------------------;
$regfile = "m16def.dat" 'für Atmega16
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
'_--------------------------------------------------------------------------
Config Timer0 = Timer0 , Prescale = 1024
On Ovf0 Tim0_isr
Dim N As Byte
'als universaler Index
Dim Abuffer(11) As Single
Dim Al As Single
Timer0 = 134
Enable Timer0
Enable Interrupts
'--------------------------------------------------------------------------
Restore Daten
For N = 1 To 11
Read Al
Abuffer(n) = Al
Print "ABUFFER= " ; Abuffer(n) ; " ";
Next
Start Timer0
Do
'irgendwas
Loop
End
'================================================= ============
Tim0_isr:
!pop R24
Timer0 = 134
Print "abuffer(2)= " ; Abuffer(2) ; " ";
'Print "N = " ; N ; " ";
!push R24
Return
'Datenteil (abuffer) anlegen
Daten:
Data -0.001919! , 0.020396! , 0.006609! , -0.092751! , -0.005412! ,
Data 0.141029! , -0.005412! , -0.092751! , 0.006609! , 0.020396! , -0.001919!
'===========================================
Kann mir jemand erklären, woran das liegt?
vln Dank
lowferb