AVR Atmega32 + считыватель Matrix II

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 145
Зарегистрирован: Пн дек 07, 2009 19:29:29

Сообщение Кинг »

нашел программу которая считывает серийный номер карточки Em-marine и выдает его в терминал. в протеусе все работает нормально а в реальности ноль..... вот такой у меня считыватель. думал сперва считыватель вышел из строя,взял новый такая же беда http://www.ironlogic.by/il.NSF/pages/matrixII.
Вот программа для codevision

#include <mega32.h>
#include <delay.h>
// 1 Wire Bus functions
#asm
.equ __w1_port=0x12 ;PORTD
.equ __w1_bit=7
#endasm
#include <1wire.h>

// Standard Input/Output functions
#include <stdio.h>
#define DS1990_FAMILY_CODE 1
#define SEARCH_ROM 0xF0
// Declare your global variables here
#define MAX_DEVICES 8
unsigned char rom_code[MAX_DEVICES][9];
// Declare your global variables here

void main(void)
{

unsigned char i,j,devices;

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;


// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

ACSR=0x80;
SFIOR=0x00;

w1_init();

while (1)
{
delay_ms(500);
w1_init();
devices=w1_search(SEARCH_ROM,&rom_code[0][0]);
for (i=0;i<devices;i++)
if (rom_code[0]==DS1990_FAMILY_CODE)
{
for (j=1;j<=6;j++)
printf(" %02X",rom_code[j]);
printf("\n\r");
};

};
}
Реклама
Встал на лапы
Сообщения: 145
Зарегистрирован: Пн дек 07, 2009 19:29:29

Сообщение Кинг »

посмотрел что творится на линии осциллографом форма импульсов какая то неправильная с чем может быть связана?
Вложения
123.png
(14.3 КБ) 575 скачиваний
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки

Сообщение Секретный кот »

Тоже хотел такое замутить, но у меня считыватель Matrix-II-K. Я так понял, из него вытащить код карточки вообще нереально?
Даже остановленные часы два раза в сутки показывают правильное время.
Контактная информация:
Ответить

Вернуться в «AVR»