-
-
selbst reset aber wie?
hab aus eienem ander beitrag das prog für einen I2C ausgabe slave auf einem atmega 8 probiert hat auch alles gefuntzt
dann hab ich es auf einen atemega 16 geladen und es hängt sich regelmäsig auf die aktuelle portstelleung bleibt erhalten (nicht so gut hab relais drann die meine beleuchtung steuern)
$regfile = "m16def.DAT"
$crystal = 1000000 '11.059 MHz Quarz
Config Portb = Output ' 1200 Baud zum PC
Dim Twi_status As Byte
Dim Twi_data As Byte
Declare Sub Twi_init_slave
Declare Function Twi_wait() As Byte
Twi_data = 0
Call Twi_init_slave ' TWI aktivieren
' Hauptschleife
Do
Twi_status = Twi_wait()
If Twi_status = &H80 Then
Gosub Relais
' Daten auf PortD ausgeben
End If
Loop
Relais:
Portb = Twi_data
Return
End
' Unterprogramme
' TWI als slave aktivieren
Sub Twi_init_slave
Twsr = 0 ' status und Prescaler auf 0
Twdr = &HFF ' default
Twcr = &B00000100 ' erstmal nur TWI aktivieren
Twar = &H50 ' Slaveadresse setzen
Twcr = &B01000100 ' dann ACK einschalten
End Sub
' schauen ob was gekommen ist, Status zurückgeben, Daten in globale variable
Function Twi_wait() As Byte
Local Twcr_local As Byte
Twi_wait = &HF8
' warten bis TWINT gesetzt ist
Twcr_local = Twcr And &H80
If Twcr_local = &H80 Then
Twi_data = Twdr ' Daten sichern
Twi_wait = Twsr And &HF8 ' status zurückgeben
Twcr = Twcr Or &B10000000 ' TWINT löschen, erzeugt ACK
End If
End Function
hab mal irgendwo gehört das da standart mäsig auf internes quartz gestellt ist hab deshalb keines dran
ich benutze ponyprog
wie verwendet man den watchdog könnte das helfen?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen