???
Математика на уровне МГУ

Показано с 1 по 25 из 2776

Тема: USB контроллер джойстика

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6

    Ответ: USB контроллер джоистика

    Цитата Сообщение от LazyCamel
    Меня вот больше интересует куда подается эти максимум 50mV с фотодиода , чтобы "нормально работало". Потому что я как лох, в подобную схему операционник с полевиком на входе и КУ=20-50 запихиваю.
    Потому что так - правильно. Я вот никак не пойму, где в Автокаде кнопка "примотать изолентой по месту" :p

    Кстати, я недавно экспериментировал с прямым подключением фотодиода к порту процессора. В принципе фотодиод - это конденсатор (~20pF) с параллельным источником тока (обратное смещение), величина которого пропорциональна освещенности. Заряжаем емкость фотодиода от порта (против шерсти) и потом, в плотном цикле, ждем пока он разрядится и вычисляем время разрядки (обратно пропорциональное освещенности).

    Получается очень и очень приличная точность. До 9-10бит - я был поражен. Теперь все что будет требовать фотосеноров буду строить на этой основе. Простота железа - фотодиод, подключеный "наоборот" к двунаправленному порту (- на землю) и все!
    Идею подсмотрел здесь: http://www.merl.com/publications/TR2003-035/

    Дарю код для PICa 16F серии
    ;
    ; PORTA.2 ----|<|------ GND (or another port pin that held low throughout this code)
    ; add port init, startup, RS232, delay code as needed

    bsf PORTA,2 ; set pin PORTA.2 high
    MainLoop
    ; LEDcntr = 0
    clrf LEDcntr1
    clrf LEDcntr2
    clrf LEDcntr3
    clrf LEDcntr4

    bsf STATUS, RP0 ; Select Bank 1
    bcf TRISA,2 ; Set PORTA.2 as output

    call Delay10us ; charge time - 10uS is enough

    bsf TRISA,2 ; Set PORTA.2 as input
    bcf STATUS, RP0 ; Select Bank 0

    CountLoop
    ; LEDcntr++
    incf LEDcntr4,F ; LSB
    skpnz
    incf LEDcntr3,F
    skpnz
    incf LEDcntr2,F
    skpnz
    incf LEDcntr1,F ; MSB

    btfsc PORTA,2 ; has LED discharged?
    goto CountLoop ; not yet

    ; LEDcntr -> RS232
    movf LEDcntr1,W
    call TxRS232
    movf LEDcntr2,W
    call TxRS232
    movf LEDcntr3,W
    call TxRS232
    movf LEDcntr4,W
    call TxRS232

    goto MainLoop
    Крайний раз редактировалось lbodnar; 01.02.2006 в 13:32.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •