Esempio n. 1
0
File: test.c Progetto: TomDoug/AOS
int shift_run(void *ctx) {
#if 0
	unsigned int elapsed_time;
	unsigned int current_time = timer_ticks;


	if (last_shift_time > current_time) {
		//handle clock overflow case
		elapsed_time = (65535 - last_shift_time) + current_time;
	} else {
		elapsed_time = current_time - last_shift_time;
	}

	if (elapsed_time > (100)) {

		last_shift_time += 100;
		
		printf("HC595Write: %02x\n", led_pattern[current_pattern]);
		HC595Write(led_pattern[current_pattern]);
		current_pattern++;
		if (current_pattern >= 8) {
			current_pattern = 0;
		}
	}
	
#endif
	return 0;
}
Esempio n. 2
0
int main(void){
    //Initialize 74HC595
    HC595Init();
    
    //Initialize CD4017
    CD4017Init();

    while(1){ 	
	for(uint8_t i = 0; i < 8; i++){
	    HC595Write(matrix1);
	    _delay_ms(2000);
	    CD4017Pulse();
	    HC595Write(matrix2);
	    _delay_ms(2000);
	    CD4017Pulse();
	    //_delay_ms(2000);
	}
    }
}
Esempio n. 3
0
File: test.c Progetto: TomDoug/AOS
int shift_value(int argc, char* argv[], void *ctx)
{
	int i;
	uint8_t value = 0;
	char *p;
	if (argc < 2) {
		printf("Usage: shift 01001101\n");
		return 0;
	}

	if (argc == 2) {
		p = argv[1];

		for (i = 0; i < 8; i++) {
			if (*p == '\0') {
				printf("Usage: shift 01001101\n");
				return 0;
			}
			if (*p != '1' && *p != '0') {
				printf("Usage: shift 01001101\n");
				return 0;
			}

			if (*p == '1') {
				value |= (1 << (7-i));
			}
			p++;
		}
	} else {
		if (strncmp(argv[1], "bit", 3) == 0) {
			uint8_t bit = 0;
			bit = *argv[2] - '0';
			printf("BIT: %d\n", bit);
			if (bit < 0 || bit > 8) {
				printf("Bit out of range\n");
				return 0;
			}

			if (current_value & (1<<bit)) {
				value = current_value & ~(1 << bit);
			} else {
				value = current_value | (1 << bit);
			}
		}
	}
	

	printf("Shifting %02x into register\n", value);
	current_value = value;
	HC595Write(value);
	return 0;
}