Skip to content

Commit dc40c75

Browse files
committed
baud setting function
1 parent 0135d12 commit dc40c75

File tree

6 files changed

+18
-2
lines changed

6 files changed

+18
-2
lines changed

add-path

100644100755
File mode changed.

compat.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ typedef unsigned int uint32_t;
66

77
int clock_ms();
88
int delay_ms(int ms);
9+
void set_baud(int speed);
910

1011
unsigned int randomized(); // return pseudorandom seeed
1112

esplisp.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ int clock_ms() {
164164
return xTaskGetTickCount() * 10;
165165
}
166166

167+
void set_baud(int speed) {
168+
sdk_uart_div_modify(0, UART_CLK_FREQ / speed);
169+
}
170+
167171
unsigned int time_ms() {
168172
//#include "user_interface.h" espressif: uint32 system_get_time(void)
169173
// it returns microseconds ( http://bbs.espressif.com/viewtopic.php?t=42 )
@@ -266,7 +270,7 @@ void user_init(void) {
266270
lastTick = xTaskGetTickCount();
267271
startMem = lastMem = xPortGetFreeHeapSize();
268272

269-
sdk_uart_div_modify(0, UART_CLK_FREQ / 115200);
273+
set_baud(115200);
270274

271275
// enable file system
272276
esp_spiffs_init();

lisp.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2586,7 +2586,12 @@ PRIM time_(lisp* envp, lisp exp) {
25862586
}
25872587

25882588
PRIM delay(lisp ms) {
2589-
return mkint(delay_ms(getint(ms)));
2589+
return mkint(delay_ms(getint(ms)));
2590+
}
2591+
2592+
PRIM baud(lisp speed) {
2593+
set_baud(getint(speed));
2594+
return nil;
25902595
}
25912596

25922597
// TODO: time functions... http://naggum.no/lugm-time.html
@@ -3389,6 +3394,7 @@ lisp lisp_init() {
33893394

33903395
DEFPRIM(ticks, 1, ticks);
33913396
DEFPRIM(clock, 1, clock_);
3397+
DEFPRIM(baud, 1, baud);
33923398
DEFPRIM(delay, 1, delay);
33933399
DEFPRIM(time, -1, time_);
33943400

symbols.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ lisp symbol_len(char *s, int len) {
9999
unsigned long h = larsons_hash(s, len);
100100
h = (h ^ (h >> 16) ^ (h << 16)) & 0xffffff; // 24 bits
101101
sym = (lisp)(h << 8 | 0xfff); // lower 8 bits all set! (and one 0)
102+
// TODO: detect collission!!!!
102103
hashsym(sym, s, len, 1); // create binding
103104
return sym;
104105
}

tlisp.ccc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ int clock_ms() {
6464
return (int)(clock()) / clocks_per_ms;
6565
}
6666

67+
void set_baud(int speed) {
68+
// dummy
69+
}
70+
6771
unsigned int time_ms() {
6872
struct timeval t;
6973
gettimeofday(&t, NULL);

0 commit comments

Comments
 (0)