Jump to content

    

Nuts_

Участник
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Nuts_

  • Rank
    Участник
  • Birthday 04/06/1980

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Небольшая утилита для Windows с исходниками Позволяет осуществлять удобное кодирование таблички для 7ми сегментного (семисегментного) индикатора Откомпилированный фал в папке realise В программе можно визуально указать какой сегмент к какому выводу контроллера подсоединен собственно PB и PD указанно для удобства можно читать что там и PA и PE короче PX и PY в результирующем фале digs.inc будет табличка из .dw биты которого будут соответствовать PXn и PYn то есть по адресу=адрестаблички+цифра*2 мы получим два байта которые можно сразу outить в PX и PY ну моджет быть замаскировав неиспользуемые биты это уже вторая версия, предыдущая была рассчитана только на один порт и генерировала готовый код с использованием оперативной памяти 7SEG2.RAR
  2. в olimexовском mod-mp3 стоят резисторы 22ом и конденсаторы 10 нан
  3. Спасибо за ссылку сам столкнулся с такой проблемой оказалось что эти разьемы маркируютьс яне только PBD и PBS например PBD1.27 2x30 известен так же как 1590060-093
  4. Так возможно что то распечатать на принтере с контроллера?
  5. AVR и блютуз

    в ЭФО появились такие же переходники и отдельные модули http://www.wless.ru/technology/?tech=8
  6. есть ДИСКРЕТ а есть МИНИМАЛЬНОЕ сопротивление которое может измерять прибор есть сопротивление измеряемого объекта, а есть сопротивление измерительной цепи в целом при добавочном сопротивлении просто вычитаем его величину из результата
  7. А linux в него прошить можно?
  8. у нас стоите реальная задача мерить сопротивление порядка 0.01х Ома на таких малых сопротивлениях прибор кажет просто 0 (меньше 0.03 Ома вроде) поэтому включили последовательно сопротивление 0.3 ома сравнивали эту систему со старым советским измерительным мостом - результаты адекватны метрологи по сопротивлению вроде без проблем калибруют ---------- остальные режимы пользую мало так что лично сказать не могу
  9. У меня был такой прикол однажды оказался контроллер глючный после замены заработало
  10. USI типа I2C на Tiny45

    код для принимающего утройтва принимает 6 байт ну еще широковещательный пакет обрабатываеться рабоатет по прерываниям .include "tn45def.inc" .def temp =r16 .def USIcnt =r19 .def USIstate =r20 .org 0 RJMP reset;RESET External Pin, Power-on Reset, Brown-out RJMP reset;INT0 External Interrupt Request 0 RJMP reset;PCINT0 External Interrupt Request 1 RJMP reset;TIMER1 COMPA Timer/Counter1 Compare Match A RJMP reset;TIMER1 OVF Timer/Counter1 Overflow RJMP reset;TIMER0 OVF Timer/Counter0 Overflow RJMP reset;EE_RDY EEPROM Ready RJMP reset;ANA_COMP Analog Comparator RJMP reset;ADC ADC Conversion Complete RJMP reset;TIMER1 COMPB Timer/Counter1 Compare Match B RJMP reset;TIMER0 COMPA Timer/Counter0 Compare Match A RJMP reset;TIMER0 COMPB Timer/Counter0 Compare Match B RJMP reset;WDT RJMP USIstart;USI - start RJMP USIofl;USI - Overflow ;----------------------- USIstart: push temp ldi temp,1 mov USIstate,temp in temp,USICR;(Enable USI Counter overflow interrupt) sbr temp,0b01000000 out USICR,temp rcall ClearACK pop temp reti USIofl: push temp mov temp,USIstate cpi temp,1 breq I2Cadr cpi temp,2 breq I2Cack cpi temp,3 breq I2Cbyte rjmp USIend I2Cadr: in temp,USIDR cpi temp,0b11111110 breq I2Calladr cpi temp,0b00000100 brne I2Cbadadr ; cbi portb,1 ldi xl,low(0x80);Set pointer on the first received byte ldi xh,high(0x80);адрес буфера дл япримеа rcall SetACK ldi temp,2 mov USIstate,temp clr USIcnt rjmp USIend I2Cack: rcall ClearACK inc USIcnt mov temp,USIcnt cpi temp,6; сколько приянть байтов breq I2Call ldi temp,3 mov USIstate,temp rjmp USIend I2Cbyte: in temp,USIDR st X+,temp; прияняли очередной байт rcall SetACK ldi temp,2 mov USIstate,temp rjmp USIend I2Calladr: ; пришел шыроковещательный пакет rjmp I2Cbadadr I2Call: ; sbi portb,1 ; прияны все данные! I2Cbadadr: rcall StopDetected USIend: pop temp reti ;-------- SetACK: sbi DDRB,0 sbi PortB,2 sbi DDRB,2 in temp,USISR cbr temp,0b00000001;(Set counter to 0xE) sbr temp,0b11101110;(Enable new interrupts. Releasing SCL) out USISR,temp ret StopDetected: in temp,USICR;(Disable USI Counter overflow interrupt) cbr temp,0b01000000 out USICR,temp ClearACK: cbi DDRB,0 cbi PortB,2 cbi DDRB,2 in temp,USISR cbr temp,0b00001111;(Clear counter) sbr temp,0b11100000;(Enable new interrupts. Releasing SCL) out USISR,temp ret ;------------------ reset: ldi temp,high(RAMEND);High byte only required if out SPH,temp ;RAM is bigger than 256 Bytes ldi temp,low(RAMEND) out SPL,temp ldi temp,0b00000010 out PORTB,temp ldi temp,0b00000010 out DDRB,temp ldi temp,(1<<USISIE)+(1<<USIWM1)+(1<<USIWM0)+(1<<USICS1) out USICR,temp ldi temp,0xf0 out USISR,temp ldi Zh,HIGH(reset) ldi Zl,LOW(reset) ldi temp, 0b00100000 out MCUCR,temp sei clr USIstate loop: sleep rjmp loop
  11. AVR и блютуз

    устройство называлось BT240 --------- у меня стояла задачу упарвлять с КПК и именно беспроодно
  12. Пробовал 1мбод http://electronix.ru/forum/index.php?showt...st&p=737723
  13. у меня работает связка на 1 мбит делиттель на FTDI принудительно на 3 ftStatus=FT_SetDivisor(ftHandle,3); FT_SetTimeouts(ftHandle,1000,500); FT_SetDataCharacteristics(ftHandle,FT_BITS_8,FT_STOP_BITS_1,FT_PARITY_NONE); ATMEGA8 _кварц _ 8MGZ обязательно от RC не рабоатла пакет аж 32768 байт ;ИНИЦИАЛИЗАЦИЯ UART ldi temp,0 out UBRRL,temp;СКОРОСТЬ clr temp out UBRRH,temp;СКОРОСТЬ ldi temp, (0<<U2X) out UCSRA,temp ;Enable receiver and transmitter ldi temp, (1<<RXEN)|(1<<TXEN) out UCSRB,temp ;Set frame format: 8 data, 1 stop bit ldi temp, (1<<URSEL)|(3<<UCSZ0) out UCSRC,temp
  14. тут уже похоже вопрос програмирования а не конкретно FTDI хендл содержащий дескриптор порта обьявлен как глобальный? может его чего то портит? вот мой пример прада для COM в начале текта HANDLE hPortThr; DWORD PortThreadID; HANDLE hPort; HANDLE port; int Nport main () { hPort=OpenCP(Nport); if (hPort== INVALID_HANDLE_VALUE) Nport=0; if (Nport) { hPortThr=CreateThread (NULL,0,(LPTHREAD_START_ROUTINE)PortThreadProc,0,CREATE_SUSPENDED,&PortThreadID); SetThreadPriority (hPortThr,THREAD_PRIORITY_NORMAL); ResumeThread(hPortThr); } } void PortThreadProc(void) { while (1) { charsRead=0; while (!charsRead) { ReadFile (hPort, &recb, 1, &charsRead, NULL); Sleep (1); } ............... } }
  15. USI типа I2C на Tiny45

    Если надо то есть реальный проверенный код на ASM 45я и mega8535 на одной правда тактовой частоте 16 мгц суть что используються констуркции вида cbi DDRB,0 cbi PortB,2 cbi DDRB,2 для ACK =----- тоже откуда то сыскал боле менее готовые исходники в свое время