PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BITWAIT nicht mit Tiny15 ??



Moonlight
15.08.2005, 14:00
Hallo Leute,

ich bin noch ein absoluter Neuling in Sachen AVR und brauche bitte mal Hilfe.

Ich habe mit Bascom ein Programm zur Ansteuerung einer Digicam über eine RC-Anlage geschrieben für einen Tiny15. Dabei frage ich die Impulse mit BITWAIT ab.
Jetzt bekomme ich aber beim debuggen mit den AVR-Tools (neueste Version) immer die Meldung "onknown opcode for this device". Wieso soll es den Befehl denn bei dem Tiny15 nicht geben ? Lt. Datenblatt ist er doch vorhanden. Wenn ich einen Tiny22 vorgebe, ist alles ok.

Hat jemand hierzu eine Idee ?

Gruß Ralf

Rage_Empire
15.08.2005, 14:04
stell mal dein Source hier rein, sonst wirds schwer nachvollziehbar

Moonlight
15.08.2005, 14:41
Ich versuch's mal. Nicht verwirren lassen, ist urspringlich definitiv für einen Tiny15 geschrieben.

'Camera-Steuerung für Mustek GSmart Mini2/3 RG 08/2005

' Am Servotester sind folgende Werte für Futaba gemessen:
' Unten Hex42 Dez66
' Mitte Hex66 Dez102
' Oben Hex8b Dez139

$regfile = "attiny13.dat"
'$tiny
'$noramclear
$crystal = 4000000
Stop Watchdog

'Dim Impulsdauer As Iram Byte
'Dim Impulsdauer_alt As Iram Byte
'Dim Lowpos As Iram Byte
'Dim Highpos As Iram Byte

Dim Impulsdauer As Byte
Dim Impulsdauer_alt As Byte
Dim Lowpos As Byte
Dim Highpos As Byte

Declare Sub Impuls_messen
Declare Sub Aufwecken
Declare Sub Bild_machen


Config Pinb.0 = Output 'Auslöser Camera

Config Pinb.1 = Input 'Schlafmodus Camera abfragen
Config Pinb.2 = Output 'Aufwecken Camera

Config Pinb.4 = Input 'Eingabeport für RC-Kanal

Config Watchdog = 2048 'Watchdogzeit ca. 2 sec


Photo Alias Portb.0
Photo = 0
Sleeping Alias Pinb.1
Awake Alias Portb.2
Awake = 0
Impuls Alias Pinb.4


'Werte evtl. an RC-Anlage anpassen
Lowpos = 60
Highpos = 140



'-------------------------Hauptprogramm---------------------------------
Start Watchdog

Do



Gosub Impuls_messen 'Prüfen der Knüppelstellung

'Wenn der Knüppel ganz oben ist,
If Impulsdauer > Highpos And Impulsdauer_alt < Highpos Then

'testen, ob Camera im Schlafmodus
Gosub Aufwecken

'Photo machen
Gosub Bild_machen

End If

Loop

End 'end program




Impuls_messen:
'--------------------Knüppelstellung messen ---------------------------
Impulsdauer_alt = Impulsdauer

Impulsdauer = 0

Bitwait Impuls , Reset 'Impulspause abwarten
Bitwait Impuls , Set 'Impulsanfang abwarten


Do 'Bis Impulsende hochzählen
Incr Impulsdauer
Loop Until Impuls = 0


'Wenn Die Impulslänge Im Gültigen Bereich Ist , Dann Watchdog Füttern,
'Sonst löst er nach 2sec. einen Reset aus , so werden Störungen vermieden

If Impulsdauer > 0 And Impulsdauer < 250 Then
Reset Watchdog
End If


Return

'----------- falls Camera im Sleepmodus ist - aufwecken ----------------
Aufwecken:

If Sleeping = 1 Then
Awake = 1
Waitms 200
End If

Return


' --------------------- Photo machen -------------------
Bild_machen:

'Auslöser an für 0,5 Sekunden
Photo = 1
Waitms 500
Photo = 0
'4 Sekunden warten, damit Bild gespeichert werden kann
Waitms 4000

Return