Che Guevara
11.05.2009, 23:06
Hallo Leute,
für einen kleinen Robi mit 2 gehackten Servos und einem Sharp GP2D12 möchte ich mit dem µC (AVR 32) den Sharp auslesen, allerdings funzt das anscheinend nicht...
hier meine Beschaltung:
reset --> 10k --> VCC (5V)
VCC --> VCC
GND --> GND
und zwischen VCC und GND einen 100nF
AREF --> 100nF --> GND
AVCC --> VCC
AGND --> GND
natürlich ist die gesamte Bordspannung mehrfach gesiebt und gleichgerichtet und... na, ihr wisst schon ;-)
Hier mal mein Programm:
$regfile = "m32def.dat"
$crystal = 8000000
Declare Function Gp2() As Single
Config Portb.1 = Output
Config Portb.2 = Output
Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 10
Config Adc = Single , Prescaler = Auto
Start Adc
Config Pina.0 = Input
Porta.0 = 0
Dim D As Single
Dim X As Word
Dim Volt As Single
Dim Ent As Single
Const A = 24.93
Const B = 0.0695
Const Ref = 5 / 1023
Enable Interrupts
Ent = 0
Servo(1) = 150
Servo(2) = 50
Do
Ent = Gp2()
If Ent < 40 Then
Servo(1) = 50
Servo(2) = 150
Wait 2
Servo(1) = 150
Servo(2) = 150
End If
Loop
End
Function Gp2() As Single
X = Getadc(0)
If X >= 77 And X <= 650 Then
Volt = X * Ref
D = Volt - B
Gp2 = A / D
End If
End Function
Fuses sind auch richtig, INT. Oszi 8MHz, JTAG disabled...
sind sonst noch i-welche fuses interressant???
Komisch ist, dass wenn ich den Chip ins RN-Control setzte und mir ent über rs232 ausgeben lasse, das ganze funzt?!?!?!?
liegt es vielleicht an der fehlenden induktivität an aref?? meiner meinung nach ist diese nur zum entstören da?!
danke für eure antworten
gruß
chris
für einen kleinen Robi mit 2 gehackten Servos und einem Sharp GP2D12 möchte ich mit dem µC (AVR 32) den Sharp auslesen, allerdings funzt das anscheinend nicht...
hier meine Beschaltung:
reset --> 10k --> VCC (5V)
VCC --> VCC
GND --> GND
und zwischen VCC und GND einen 100nF
AREF --> 100nF --> GND
AVCC --> VCC
AGND --> GND
natürlich ist die gesamte Bordspannung mehrfach gesiebt und gleichgerichtet und... na, ihr wisst schon ;-)
Hier mal mein Programm:
$regfile = "m32def.dat"
$crystal = 8000000
Declare Function Gp2() As Single
Config Portb.1 = Output
Config Portb.2 = Output
Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 10
Config Adc = Single , Prescaler = Auto
Start Adc
Config Pina.0 = Input
Porta.0 = 0
Dim D As Single
Dim X As Word
Dim Volt As Single
Dim Ent As Single
Const A = 24.93
Const B = 0.0695
Const Ref = 5 / 1023
Enable Interrupts
Ent = 0
Servo(1) = 150
Servo(2) = 50
Do
Ent = Gp2()
If Ent < 40 Then
Servo(1) = 50
Servo(2) = 150
Wait 2
Servo(1) = 150
Servo(2) = 150
End If
Loop
End
Function Gp2() As Single
X = Getadc(0)
If X >= 77 And X <= 650 Then
Volt = X * Ref
D = Volt - B
Gp2 = A / D
End If
End Function
Fuses sind auch richtig, INT. Oszi 8MHz, JTAG disabled...
sind sonst noch i-welche fuses interressant???
Komisch ist, dass wenn ich den Chip ins RN-Control setzte und mir ent über rs232 ausgeben lasse, das ganze funzt?!?!?!?
liegt es vielleicht an der fehlenden induktivität an aref?? meiner meinung nach ist diese nur zum entstören da?!
danke für eure antworten
gruß
chris