Hallo
Ich habe ein (einfaches ?) Problem:
Der folgende Code (Ausschnitt) geht mit dem Mega32 aber nicht mit dem Mega1284.
(Portc.2 - Portc.5 schalten nicht, Portc.6 und Portc7 ist ok, Portd.x auch)
Config PortC = Output
Set Portc
Fet1 Alias PortC.4
Fet2 Alias PortC.7
Fet3 Alias PortC.5
Fet4 Alias PortC.6
Fet5 Alias PortC.2
Fet6 Alias PortC.3
Config PortD.7 = Output
Fet7 Alias PortD.7
set Fet7
Config PortD.6 = Output
LDAC Alias PortD.6
Set Ldac
Config Spi = Hard, Interrupt = Off, Data_Order = Msb, Master = Yes, Polarity = High, Phase = 1, Clockrate = 4, Noss = 0
Spiinit
'
Config Adc = Single , Prescaler = Auto , Reference = Internal_2.56
Start ADC
'must, will not work without start
'
Config Watchdog = 2048
...
Switch_off:
'This is faster than calling Send_to_fet
Set Ldac
Spi_buffer(1) = High(Da_resolution)
Spi_buffer(1) = Spi_buffer(1) + Dac_adder
Spi_buffer(2) = Low(Da_resolution)
'highest value is off
Reset Fet1
Reset Fet2
Reset Fet3
Reset Fet4
Reset Fet5
Reset Fet6
Reset Fet7
Spiout Spi_buffer , 2
'send to all in parallel
Set Fet1
Set Fet2
Set Fet3
Set Fet4
Set Fet5
Set Fet6
Set Fet7
Reset Ldac
NOP
'min time is 100ns
Set Ldac
For Tempb = 1 to 7
Dac_out_voltage(Tempb) = Da_resolution
Next Tempb
Return
'
Der komplette Code (kann noch Fehler haben):
dk1ri.de/dhw/electronic_load_bascom.zip
die Beschreibung dazu:
dk1ri.de/dhw/electronic_load.pdf
Hat jemand eine Idee?
Tnx
Guenter
Ich habe ein (einfaches ?) Problem:
Der folgende Code (Ausschnitt) geht mit dem Mega32 aber nicht mit dem Mega1284.
(Portc.2 - Portc.5 schalten nicht, Portc.6 und Portc7 ist ok, Portd.x auch)
Config PortC = Output
Set Portc
Fet1 Alias PortC.4
Fet2 Alias PortC.7
Fet3 Alias PortC.5
Fet4 Alias PortC.6
Fet5 Alias PortC.2
Fet6 Alias PortC.3
Config PortD.7 = Output
Fet7 Alias PortD.7
set Fet7
Config PortD.6 = Output
LDAC Alias PortD.6
Set Ldac
Config Spi = Hard, Interrupt = Off, Data_Order = Msb, Master = Yes, Polarity = High, Phase = 1, Clockrate = 4, Noss = 0
Spiinit
'
Config Adc = Single , Prescaler = Auto , Reference = Internal_2.56
Start ADC
'must, will not work without start
'
Config Watchdog = 2048
...
Switch_off:
'This is faster than calling Send_to_fet
Set Ldac
Spi_buffer(1) = High(Da_resolution)
Spi_buffer(1) = Spi_buffer(1) + Dac_adder
Spi_buffer(2) = Low(Da_resolution)
'highest value is off
Reset Fet1
Reset Fet2
Reset Fet3
Reset Fet4
Reset Fet5
Reset Fet6
Reset Fet7
Spiout Spi_buffer , 2
'send to all in parallel
Set Fet1
Set Fet2
Set Fet3
Set Fet4
Set Fet5
Set Fet6
Set Fet7
Reset Ldac
NOP
'min time is 100ns
Set Ldac
For Tempb = 1 to 7
Dac_out_voltage(Tempb) = Da_resolution
Next Tempb
Return
'
Der komplette Code (kann noch Fehler haben):
dk1ri.de/dhw/electronic_load_bascom.zip
die Beschreibung dazu:
dk1ri.de/dhw/electronic_load.pdf
Hat jemand eine Idee?
Tnx
Guenter