Код: Выделить всё
void Wr_595(char d)
{
Port_Load_0;
for(char i = 0; i < 8; i++)
{
Port_SCLK_0;
if(d & 0x80) Port_SDATA_1;
else Port_SDATA_0;
d = d << 1;
Port_SCLK_1;
}
Port_Load_1;
}
Код: Выделить всё
void Wr_595(char d)
{
Port_Load_0;
for(char i = 0; i < 8; i++)
{
Port_SCLK_0;
if(d & 0x80) Port_SDATA_1;
else Port_SDATA_0;
d = d << 1;
Port_SCLK_1;
}
Port_Load_1;
}
Ничегонеработает писал(а):У меня так:
Код: Выделить всё
void Wr_595(char d){
Port_Load_0;
for(unsigned char mask = 0x80; mask; mask >>= 1){
Port_SCLK_0;
if(d & mask)
Port_SDATA_1;
else
Port_SDATA_0;
Port_SCLK_1;
}
Port_Load_1;
}demiurg301 писал(а):Подскажите надо ли на SDA SCL i2c вешать конденсаторы фильтрующие. Где то проскакивало что надо , но от чего и какой ёмкости непонятно. На схемах нигде нет... А в голове чтото такое крутится( что гдето видел) ...
Код: Выделить всё
Note: Pull-up resistor values should be selected according to the SCL frequency and the capacitive bus
line load. See Table 133 on page 328 for value of pull-up resistor.

Мастер Ломастер писал(а):а я подглядел у кого-то и теперь делаю чуть-чуть покрасивее
Serhio писал(а):Всем доброго времени суток. Обьясните пожалуйста, что такое апноуты и где их искать? Мне необходимо для Atmega8
ANALOG писал(а):Господа, у меня такая проблема:
Я сделал программатор громова и USBasp. Мне нужно прошить контроллер (mega48) в USBasp. Подключаю громова, а USBasp втыкаю в ЮСБ (для питания) Пытаюсь прошить через Uniprof - пишет, что МК не откликнулся
Спаял всё правильно, дорожки прозванивал. В чём может быть проблема?
Код: Выделить всё
void main()
{
TRISC = 0; // Set PORTC output mode
PORTC = 0; // Clear port
ANS6 = 0; // Set RE1 as digital port
ANS12 = 0; // Set RB0 as digital port
TRISB0 = 1; // Set RB0 input mode
TRISA4 = 1; // Set RA4 input mode
TRISE1 = 1; // Set RE1 input mode
while(1) // Infinite loop
{
if(RB0==0) // Switch at RB0 press?
{
PORTC++; // Increase data of PORTC 1 time
Delay_ms(200); // Delay 0.5 sec
}
if(RA4==0) // Switch at RA4 press?
{
PORTC--; // Decrease data of PORTC 1 time
Delay_ms(200); // Delay 0.5 sec
}
if(RE1==0) // Switch at RE1 press?
{
PORTC = 0; // Clear data of PORTC
Delay_ms(200); // Delay 0.5 sec
}
}
}
AVT-28 писал(а):...Вроде делаю все правильно но не пашет.
Necroteeth писал(а):У меня очень глупый вопрос - чтобы нога МК атмега работала как вход, кроме нуля в соответствующем бите регистра DDRx надо ли что-то пихать в PORTx?
Necroteeth писал(а):и надо ли вообще эти манипуляции проводить, если данная нога (T1) используется для внешнего тактового сигнала?
Chettuser писал(а):TRISE = 0xFF; Равносильно тому что TRISE = 0b11111111;
Gudd-Head писал(а):Если фьюзами выставлено внешнее тактирование, то соотв. нога (ноги) выпадают из списка линий ввода-вывода и работают на вход.